KeyTest.java
import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Event;
/** キーボード入力ができるアプレット KeyTest クラスの定義 */
public class KeyTest extends Applet {
/** 押されたキーの文字を記憶するためのバッファ*/
protected StringBuffer buf = null;
/** キーボード・フォーカスがあるかどうかを示すフラグ */
protected boolean focusFlag = false;
/** 初期設定を行う。最初は空白の文字。アプレットのサイズを調整 */
public void init() {
buf = new StringBuffer( " " );
resize( 33, 33 );
}
/** アプレットにグラフィックを描く。
最初の表示の時には自動的に、後は repaint() によって呼び出される。*/
public void paint( Graphics g ) {
g.setColor( Color.lightGray );
g.fill3DRect( 0, 0, 32, 32, focusFlag ); // フォーカスの有無で表示が変わる
g.setColor( Color.black );
g.drawString( buf.toString(), 12, 20 ); // 文字を描く
}
/** キーが押された時に自動的に呼び出される。*/
public boolean keyDown( Event evt, int key ) {
buf.setCharAt( 0, (char)key ); // 押された文字を buf に記憶
repaint(); // paint() を呼び出す
return true;
}
/** キーボードフォーカスを得た時に自動的に呼び出される。*/
public boolean gotFocus( Event evt, Object obj ) {
focusFlag = true;
repaint(); // paint() を呼び出す
return true;
}
/** キーボードフォーカスを失った時に自動的に呼び出される。*/
public boolean lostFocus( Event evt, Object obj ) {
focusFlag = false;
repaint(); // paint() を呼び出す
return true;
}
}