RevName.java



import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Color;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Event;

/** マウスの操作で表示が反転するアプレットRevNameのクラス定義 */

public class RevName extends Applet {

   /** 表示する文字列 */

        public String message = "Wakkanai Hokusei";

   /** フォント */

        public Font textFont = null;

   /** マウスがアプレット内にあるかどうかを示すフラグ */

        protected boolean stateFlag = false;

   /** 初期設定を行う。生成時に自動的に呼ばれる */

        public void init() {
               int width;    // 指定されたフォントと文字列から計算したサイズ

               textFont = new Font( "TimesRoman", Font.ITALIC, 24 );
               width = getFontMetrics(textFont).stringWidth( message ) + 10;
               resize( width, 32 );
        }

   /** アプレットにグラフィックを描く
    *  最初の表示の時には自動的に、後はrepaint() によって呼ばれる。
    */
        public void paint( Graphics g ) {
               if( stateFlag == false ) {   // マウスはアプレットの外にある
                   g.setFont( textFont );
                   g.setColor( Color.yellow );
                   g.fill3DRect( 1, 1, size().width-2, size().height-2, true );
                   g.setColor( Color.black );
                   g.drawString( message, 5, 22 );
               }
               else {     // マウスがアプレットの中にある
                   g.setFont( textFont );
                   g.setColor( Color.black );
                   g.fill3DRect( 1, 1, size().width-2, size().height-2, false );
                   g.setColor( Color.yellow );
                   g.drawString( message, 5, 22 );
               }
        }

   /** マウスがアプレット内に入った時に自動的に呼び出される */

        public boolean mouseEnter( Event evt, int x, int y ) {
               stateFlag = true;
               repaint();                // paint() を呼び出す
               return true;        // イベント処理を行った
        }

   /** マウスがアプレットの外に出た時に自動的に呼び出される */

        public boolean mouseExit( Event evt, int x, int y ) {
               stateFlag = false;
               repaint();                // paint() を呼び出す
               return true;        // イベント処理を行った
        }
}