ImpressedMessage.java
import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Font;
import java.awt.FontMetrics;
/** メッセージを立体的に表示する ImpressMessage クラス */
public class ImpressedMessage extends Applet {
/** メッセージの内容 */
public String message = null;
/** 文字の色 */
public Color color = null;
/** メッセージのフォント */
public Font font = null;
/** 初期設定のメソッド(生成時に自動的に呼ばれる)*/
public void init() {
font = new Font( "TimesRoman", Font.ITALIC, 36 );
message = getParameter("message");
if ( message == null )
message = "Welcome to Wakkanai!";
int red = getIntValue("red");
int green = getIntValue("green");
int blue = getIntValue("blue");
if( red == -1 || green == -1 || blue == -1 )
color = Color.lightGray;
else
color = new Color( red, green, blue );
}
/** 初期画面を描くメソッド(画面に現れた時に自動的に呼ばれる)*/
public void paint( Graphics g ) {
g.setFont( font );
g.setColor( color.darker() );
g.drawString( message, 5, 26 ); // 影を描く
g.setColor( color.brighter() );
g.drawString( message, 3, 24 ); // ハイライト
g.setColor( color );
g.drawString( message, 4, 25 ); // 文字の本体
}
/** パラメータの文字列を解釈するメソッド */
protected int getIntValue( String name ) {
String word = getParameter( name );
if( word == null ) // 値が与えられていない
return -1;
int value = Integer.parseInt( word );
if( 0 <= value && value <= 255 ) // 適当な範囲
return value;
else
return -1;
}
}