どんなキーが押されたのかを調べる方法です。
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 メソッドをつかってみました。
下の画面をクリックしてからキーボードを押してみて下さい。