KeyTest.java
Import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Color;
import java.awt.Event;
/** キーボード入力ができるアプレットKeyTestクラスの定義 */
public class KeyTest extends Applet {
/** 押されたキーの文字を記憶するためのバッファ */
private StringBuffer buf = null;
/** キーボードフォーカスがあるかどうかを示すフラグ */
private boolean focusFlag = false;
/** 初期設定を行う。最初は空白の文字 */
public void init() {
buf = new StringBuffer( " " );
resize( 33, 33 );
}
/**
* アプレットにグラフィックを描く
* 最初の表示の時には自動的に、後は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 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;
}
}