Java Applet

キーイベント

どんなキーが押されたのかを調べる方法です。

TestJavaApplet42_1.java

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 は文字キーが押されたときだけ呼ばれます。 今回は、文字を表示させたいのでこれを使います。

あとは、押されたキーの文字を表示させているだけです。

実行例

下の画面をクリックしてからキーボードを押してみて下さい。

TestJavaApplet42_2.java

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 メソッドをつかってみました。

実行例

下の画面をクリックしてからキーボードを押してみて下さい。


[前へ] [戻る] [次へ]