KeyTest11.java
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Color;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
/** キーボード入力ができるアプレットKeyTestクラスの定義 */
public class KeyTest11 extends Applet
implements MouseListener, KeyListener, FocusListener {
/** 押されたキーの文字を記憶するためのバッファ */
private StringBuffer buf = null;
/** キーボードフォーカスがあるかどうかを示すフラグ */
private boolean focusFlag = false;
/** 初期設定を行う。最初は空白の文字 */
public void init() {
buf = new StringBuffer( " " );
setSize( 33, 33 ); // JDK1.0 では resize()
addMouseListener( this ); //自分自身を登録
addKeyListener( this ); //自分自身を登録
addFocusListener( this ); //自分自身を登録
}
/**
* アプレットにグラフィックを描く
* 最初の表示の時には自動的に、後はrepaint() によって呼び出される
*/
public void paint( Graphics g ) {
g.setColor( Color.lightGray );
if( focusFlag == false ) { // キーボードフォーカスがない
g.fill3DRect( 0, 0, 32, 32, false ); // 通常のハイライトで表示
}
else { // キーボードフォーカスがある
g.fill3DRect( 0, 0, 32, 32, true ); // ハイライトの表示を反転
}
g.setColor( Color.black );
g.drawString( buf.toString(), 12, 20 ); // 文字を描く
}
/** キー入力が行われた時に自動的に呼び出される */
public void keyTyped( KeyEvent evt ) {
buf.setCharAt( 0, evt.getKeyChar() ); // 入力された文字をbufに記憶
repaint(); // paint() を呼び出す
}
/** キーが押された時に自動的に呼び出される */
public void keyPressed( KeyEvent evt ) {
}
/** キーが放された時に自動的に呼び出される */
public void keyReleased( KeyEvent evt ) {
}
/** キーボードフォーカスを得た時に自動的に呼び出される */
public void focusGained( FocusEvent evt ) {
focusFlag = true;
repaint(); // paint() を呼び出す
}
/** キーボードフォーカスを失った時に自動的に呼び出される */
public void focusLost( FocusEvent evt ) {
focusFlag = false;
repaint(); // paint() を呼び出す
}
/** マウスカーソルが入った時に自動的に呼び出される */
public void mouseEntered( MouseEvent evt ) {
requestFocus();
}
/** マウスカーソルが出た時に自動的に呼び出される */
public void mouseExited( MouseEvent evt ) {
}
/** マウスボタンがクリックされた時に自動的に呼び出される */
public void mouseClicked( MouseEvent evt ) {
}
/** マウスボタンが押し込まれた時に自動的に呼び出される */
public void mousePressed( MouseEvent evt ) {
}
/** マウスボタンが放された時に自動的に呼び出される */
public void mouseReleased( MouseEvent evt ) {
}
}