このページには、以下のサンプルを掲載しています。
下の項目をクリックをすると各サンプルにジャンプします。
※2週間以内の新着記事はNewアイコン、更新記事はUpアイコンが表示されます。
■キー入力のサンプル
[ サンプルプログラムのソースコード - KeySample01.java - ]
- import java.awt.Graphics;
- import java.awt.event.KeyEvent;
- import java.awt.event.KeyListener;
- import javax.swing.JApplet;
- public class KeySample01 extends JApplet implements KeyListener {
- private static final long serialVersionUID = 1L;
- String message = "まだキーは、押されてないよ";
- public void init() {
- addKeyListener(this);
- }
- public void paint(Graphics g) {
- g.clearRect(0, 0, getWidth(), getHeight());
- g.drawString(message, 10, 10);
- }
- public void update(Graphics g){
- paint(g);
- }
- public void keyPressed(KeyEvent e) {
- message = "押されたキーは、"
- + KeyEvent.getKeyText(e.getKeyCode())+ "だよ";
- repaint();
- }
- public void keyReleased(KeyEvent e) {
- }
- public void keyTyped(KeyEvent e) {
- }
- }
|
上記のプログラムは、下のような書き方も出来ます。
[ サンプルプログラムのソースコード - KeySample01B.java - ]
- import java.awt.Graphics;
- import java.awt.event.KeyAdapter;
- import java.awt.event.KeyEvent;
- import javax.swing.JApplet;
- public class KeySample01B extends JApplet {
- private static final long serialVersionUID = 1L;
- String message = "まだキーは、押されてないよ";
-
- public void init() {
- addKeyListener(new KeyAdapter(){
- public void keyPressed(KeyEvent e) {
- message = "押されたキーは、"
- + KeyEvent.getKeyText(e.getKeyCode())+ "だよ";
- repaint();
- }
- });
- }
- public void paint(Graphics g) {
- g.clearRect(0, 0, getWidth(), getHeight());
- g.drawString(message, 10, 10);
- }
- public void update(Graphics g){
- paint(g);
- }
- }
|
[ サンプルプログラムの実行結果 ]
実行結果を見るには下のボタンをクリックしてください。
押されたキーの名前を表示します。
※実行結果は、別ウィンドウで開きます。実行には時間がかかることがありますのでご注意ください。
[ サンプルプログラムの解説 ]
アプレットでキー入力(キーイベント)を検知するには、キーリスナーリスナーをインプリメント(9行目)します。
そしてアプレットの初期化メソッドでキーリスナーの登録(15行目)を行います。
キーリスナーをインプリメントした場合、それぞれ下記のメソッドを追加して処理の記述をおこないます。
メソッド内に実行したい処理が無い場合(例えば、キーを離したときに行う処理が何も無いときなど)は、メソッドだけ用意して中身は、
空にしておきます。メソッドを用意しておかないとコンパイルエラーとなります。
キーリスナーをインプリメントした時に追加するメソッド
・public void keyPressed(KeyEvent e) … キーを押している時に行う処理を記述する
・public void keyReleased(KeyEvent e) … キーを離した時に行う処理を記述する
・public void keyTyped(KeyEvent e) … キーを入力している時に行う処理を記述する
メソッドの中で、どのキーが押されたのかif分を使って判定します。
キー入力(キーイベント)処理を記述する時の大体の構造は、下のような感じになります。
- public class [アプレットの名前] extends JApplet implements KeyListener {
- Button [ボタンオブジェクトのオブジェクト変数名] = new Button();
- public void init() {
- addKeyListener(this);
- }
- public void keyPressed(KeyEvent e) {
- if ( e.getKeyCode() == [検知したいキーを表すKeyEventクラスの静的変数]) {
- [検知したキーを押している時の処理を記述]
- }
- repaint();
- }
- public void keyReleased(KeyEvent e) {
- if ( e.getKeyCode() == [検知したいキーを表すKeyEventクラスの静的変数]) {
- [検知したキーを離した時の処理を記述]
- }
- repaint();
- }
- public void keyTyped(KeyEvent e) {
- if ( e.getKeyCode() == [検知したいキーを表すKeyEventクラスの静的変数]) {
- [検知したキーを入力した時の処理を記述]
- }
- repaint();
- }
- public void paint(Graphics g) {
- [描画処理等]
- }
- }
|