classes/KeyTest2.java



import browser.Applet;
import awt.Graphics;

/**
 キーボード入力ができるアプレット KeyTest クラスの定義
 */
class KeyTest extends Applet {

/**
 押されたキーの文字を記憶するためのバッファ
 */
       private StringBuffer buf = null;
/**
 キーボード・フォーカスがあるかどうかを示すフラグ
 */
       private boolean focusFlag = false;

/**
 初期設定を行う。最初は空白の文字。アプレットのサイズを調整
 */
       protected void init() {

             buf = new StringBuffer( " " );
             resize( 32, 32 );
       }

/**
 アプレットにグラフィックを描く。
 最初の表示の時には自動的に、後は repaint() によって呼び出される。
 */
       public void paint( Graphics g ) {
       /*
         キーボードフォーカスがない。通常のハイライトで表示。
        */
             if( focusFlag == false ) {
                  g.paint3DRect( 0, 0, 32, 32, false, true );
             }
       /*
         キーボードフォーカスがある。ハイライトの表示を反転。
        */
             else {
                  g.paint3DRect( 0, 0, 32, 32, false, false );
             }
             g.drawString( buf.toString(), 12, 20 );  // 文字を描く
       }

/**
 マウスがアプレット内に入った時に自動的に呼び出される。
 */
       public void mouseEnter() {

             getFocus();    // キーボード・フォーカスを得る
       }

/**
 キーが押された時に自動的に呼び出される。
 */
       public void keyDown( int key ) {

             buf.setCharAt( 0, (char)key );  // 押された文字を buf に記憶
             repaint();                      // paint() を呼び出す
       }

/**
 キーボードフォーカスを得た時に自動的に呼び出される。
 */
       public void gotFocus() {

             focusFlag = true;
             repaint();                      // paint() を呼び出す
       }

/**
 キーボードフォーカスを失った時に自動的に呼び出される。
 */
       public void lostFocus() {

             focusFlag = false;
             repaint();                      // paint() を呼び出す
       }
}