//============================================================================= // UpperHandPlayerView.java // Copyright(c) 1998 Satoshi Kobayashi, All rights reserved. //============================================================================= import java.awt.*; //============================================================================= // class UpperHandPlayerView // プレーヤーの名前、手番を表示するクラス。 //============================================================================= public class UpperHandPlayerView extends Canvas { //----------------------------------------------------------------------------- // クラス変数定義 //----------------------------------------------------------------------------- // 名前の表示に使用するフォントの名前 private final static String fontName = "Helvetica"; // 名前の表示に使用するフォントのサイズ private final static int fontSize = 10; //----------------------------------------------------------------------------- // インスタンス変数定義 //----------------------------------------------------------------------------- // 表示対象のゲーム private UpperHandGame game; // 表示対象のプレーヤー private int player; // プレーヤーの名前 private String playerName; //----------------------------------------------------------------------------- // コンストラクタ定義 //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- // public UpperHandPlayerView(UpperHandGame game, int player) // UpperHandBPlayerViewのインスタンスを生成し、初期化を行う。 // UpperHandGame game - 表示対象のゲーム // int player - 表示対象のプレーヤー //----------------------------------------------------------------------------- public UpperHandPlayerView(UpperHandGame game, int player) { this.game = game; this.player = player; // コンポーネントの背景色を設定する。 setBackground(UpperHand.color[UpperHand.BG_COLOR]); } //----------------------------------------------------------------------------- // メソッド定義 //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- // public void playerName(String name) // プレーヤーの名前を設定する。 //----------------------------------------------------------------------------- public void playerName(String name) { playerName = name; } //----------------------------------------------------------------------------- // public void paint(Graphics g) // プレーヤーの名前を手番がわかる形で描画する。 //----------------------------------------------------------------------------- public void paint(Graphics g) { Color bg = UpperHand.color[UpperHand.BG_COLOR]; // 背景色 Color fg = UpperHand.color[UpperHand.FG_COLOR]; // 前景色 Color c1; // 左と上の辺の色 Color c2; // 右と下の辺の色 int style; // フォントスタイル(標準/ボールド体) // 自分自身の位置を得る。 Rectangle rect = bounds(); if (!game.isFinish() && game.nextPlayer() == player) { // 自分の手番の場合 // 浮き上がった四角になるように色を設定する。 c1 = bg.brighter().brighter(); c2 = bg.darker().darker(); // フォントスタイルをボールド体とする。 style = Font.BOLD; } else { // 自分の手番以外の場合 // へこんだ四角になるように色を設定する。 c1 = bg.darker().darker(); c2 = bg.brighter().brighter(); // フォントスタイルを標準とする。 style = Font.PLAIN; } // 背景を描く。 g.setColor(c1); g.drawLine(0, 0, 0, rect.height - 1); g.drawLine(0, 0, rect.width - 1, 0); g.setColor(c2); g.drawLine(rect.width - 1, 0, rect.width - 1, rect.height - 1); g.drawLine(0, rect.height - 1, rect.width - 1, rect.height - 1); // プレーヤーの名前を描く。 g.setFont(new Font(fontName, style, fontSize)); g.setColor(fg); g.drawString(playerName, 3, rect.height - 3); } //----------------------------------------------------------------------------- // public Dimension minimumSize() // コンポーネントの最小サイズを返す。 //----------------------------------------------------------------------------- public Dimension minimumSize() { return new Dimension(0, 16); } //----------------------------------------------------------------------------- // public Dimension preferredSize() // コンポーネントの推奨サイズを返す。 //----------------------------------------------------------------------------- public Dimension preferredSize() { return minimumSize(); } }