どんなキーが押されたのかを調べる方法です。
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import myMath.Tpl02;
public class TestJavaApplet42_1 extends Tpl02 implements KeyListener {
String skey = "";
public void init() {
addKeyListener(this);
}
public void paint(Graphics g) {
g.clearRect(0, 0, getWidth(), getHeight());
g.drawString(skey, 10, 10);
requestFocusInWindow();
}
public void keyPressed(KeyEvent e) {
}
public void keyReleased(KeyEvent e) {
}
public void keyTyped(KeyEvent e) {
skey="";
skey += e.getKeyChar();
repaint();
}
}
まず、KeyListener をインプリメントします。
public class TestJavaApplet42_1 extends Tpl02 implements KeyListener {
}
キーリスナーを JavaApplet に付け加えます。 これは、init メソッドに書きました。 (この init は、JavaApplet の最初に1回呼ばれます。)
addKeyListener(this);
キーが押されると、Key の付いているメソッド達が呼ばれます。 ただ、keyTyped は文字キーが押されたときだけ呼ばれます。 今回は、文字を表示させたいのでこれを使います。
あとは、押されたキーの文字を表示させているだけです。
下の画面をクリックしてからキーボードを押してみて下さい。
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import myMath.Tpl02;
public class TestJavaApplet42_2 extends Tpl02 implements KeyListener {
String skey = "";
public void init() {
addKeyListener(this);
}
public void paint(Graphics g) {
g.clearRect(0, 0, getWidth(), getHeight());
g.drawString(skey, 10, 10);
requestFocusInWindow();
skey = "";
}
public void keyPressed(KeyEvent e) {
skey += KeyEvent.getKeyText(e.getKeyCode());
repaint();
}
public void keyReleased(KeyEvent e) {
}
public void keyTyped(KeyEvent e) {
}
}
今度は、キーが押されたときを捕まえるため、keyPressed メソッドを使います。 ただ、どんなキーが押されたのか画面に表示したかったので、getKeyText メソッドをつかってみました。
下の画面をクリックしてからキーボードを押してみて下さい。