0
キー入力のイベント処理がされないことについて
java学習者で、高橋麻奈先生の著書「やさしいJava活用
編」にてjavaを学習しております。
早速ですが、コードを載せます。(前述の本のLesson3の
Sample7.javaのコードです。)
----------------------------------------------
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Sample7 extends JApplet
{
private JLabel lb1, lb2;
public void init()
{
//コンテンツペインの取得
Container cnt = getContentPane();
//コンポーネントの作成
lb1 = new JLabel("矢印キーでお選びください");
lb2 = new JLabel();
//コンテナへの追加
cnt.add(lb1, BorderLayout.NORTH);
cnt.add(lb2, BorderLayout.SOUTH);
//リスナの登録
addKeyListener(new SampleKeyListener());
}
//リスナクラス
class SampleKeyListener extends KeyAdapter
{
public void keyPressed(KeyEvent e)
{
String str;
int k = e.getKeyCode();
switch(k)
{
case KeyEvent.VK_UP:
str = "上";
break;
case KeyEvent.VK_DOWN:
str = "下";
break;
case KeyEvent.VK_LEFT:
str = "左";
break;
case KeyEvent.VK_RIGHT:
str = "右";
break;
default:
str = "他のキー";
}
lb2.setText(str + "ですね。");
}
}
}
---------------------------------------------
実行結果としては
アプレット上部に「矢印キーでお選びください」と表示さ
れ、アプレット下部に↑キーで「上ですね。」↓キーで
「下ですね。」←キーで「左ですね。」→キーで「右です
ね。」と表示される仕様です。
しかし、私が実行した結果、アプレット下部の表示が出ま
せんでした。
コンパイルエラーや実行時のエラーは出ません。通常通り
の実行はされます。
とりあえず以下の解決策を講じましたが、何が原因かはつ
き止められません。
・本のサンプルコードと見比べる
完全に一致しており、間違いはありませんでした。
(何度も確認しましたが)
・コード中の「lb2 = new JLabel();」を「lb2 = new
JLabel("上");」と修正した
下部に「上」と表示されました。コンテナの追加ま
で誤りはありません。
・キー入力のイベント処理を扱う単純な別のプログラムを
作成
キー入力のイベント処理がされず、同じ結果でした
質問は以上です。見ていただければ幸いです。