RevName11.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.MouseEvent;
import java.awt.event.MouseListener;
/** マウスの操作で表示が反転するアプレットRevName11のクラス定義 */
public class RevName11 extends Applet implements MouseListener {
/** 表示する文字列 */
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;
setSize( width, 32 ); // JDK1.0 では resize()
addMouseListener( this ); // 自分自身を登録
}
/** アプレットにグラフィックを描く
* 最初の表示の時には自動的に、後はrepaint() によって呼ばれる。
*/
public void paint( Graphics g ) {
if( stateFlag == false ) { // マウスはアプレットの外にある
g.setFont( textFont );
g.setColor( Color.yellow );
g.fill3DRect( 1, 1, getSize().width-2,
getSize().height-2, true ); //JDK1.0 ではsize()
g.setColor( Color.black );
g.drawString( message, 5, 22 );
}
else { // マウスがアプレットの中にある
g.setFont( textFont );
g.setColor( Color.black );
g.fill3DRect( 1, 1, getSize().width-2,
getSize().height-2, false ); //JDK1.0 ではsize()
g.setColor( Color.yellow );
g.drawString( message, 5, 22 );
}
}
/** マウスがアプレット内に入った時に自動的に呼び出される */
public void mouseEntered( MouseEvent evt ) {
stateFlag = true;
repaint(); // paint() を呼び出す
}
/** マウスがアプレットの外に出た時に自動的に呼び出される */
public void mouseExited( MouseEvent evt ) {
stateFlag = false;
repaint(); // paint() を呼び出す
}
/** マウスボタンが押された時に自動的に呼び出される */
public void mousePressed( MouseEvent evt ) {
}
/** マウスボタンが放された時に自動的に呼び出される */
public void mouseReleased( MouseEvent evt ) {
}
/** マウスボタンがクリックされた時に自動的に呼び出される */
public void mouseClicked( MouseEvent evt ) {
}
}