ホームページ > Java > &#&チュートリアル > 堅牢でサイズ変更可能なスイングベースのチェス GUI を構築するには?

堅牢でサイズ変更可能なスイングベースのチェス GUI を構築するには?

Patricia Arquette
リリース: 2025-01-03 05:10:41
オリジナル
893 人が閲覧しました

How to Build a Robust and Resizable Swing-Based Chess GUI?

堅牢でサイズ変更可能な Swing Chess GUI の作成

この記事では、堅牢でサイズ変更可能な Swing ベースの Chess GUI の設計と実装について説明します。ユーザー デザイン チームが概説した仕様では、次のものが求められます。

  • 一般的なゲーム アクション用のボタンを備えたツールバー
  • 将来の使用のために予約されている領域
  • チェス ボード利用可能なスペースを埋める間は正方形のままです
  • チェスのキーボード アクセシビリティとフォーカス インジケーターピース

実装の詳細

目的の機能を実現するために次のテクニックが採用されました:

  • チェスのパネルBoard: 9x9 GridLayout はチェス盤の作成に使用されます。最初のセルはテキストなしのラベル用に予約されています。
  • 個別のボタン配列: ゲーム ロジックを簡素化するために、ボタンの 8x8 配列が個別に維持されます。
  • キーボード機能用のボタン: ボタンはチェス盤の四角形に使用され、キーボードとマウスの操作を可能にします。マージンを削除すると、アイコン サイズに縮小できます。
  • 正方形ボードの GridBagLayout: チェス ボードは、指定された制約のない唯一のコンポーネントとして GridBagLayout に追加され、中央に配置されます。正方形の寸法を維持するために、チェス盤は親コンポーネントのサイズをクエリし、親の小さい幅または高さを超えない範囲で可能な最大の正方形である優先サイズを返します。
  • チェスの駒の画像: チェスの駒の画像が取得され、2 次元に保存されます。 array.

サンプル コード

次のコード スニペットは、チェス ボードとチェスの駒の画像の初期化を示しています。

for (int ii = 0; ii < 8; ii++) {
    for (int jj = 0; jj < 8; jj++) {
        chessBoardSquares[ii][jj] = new JButton();
        // Remove button margin to allow shrinking to icon size
        chessBoardSquares[ii][jj].setMargin(new Insets(0, 0, 0, 0));
        chessBoardSquares[ii][jj].setIcon(new ImageIcon(
                new BufferedImage(64, 64, BufferedImage.TYPE_INT_ARGB)));
        if ((jj % 2 == 1 &amp;&amp; ii % 2 == 1)
                || (jj % 2 == 0 &amp;&amp; ii % 2 == 0)) {
            chessBoardSquares[ii][jj].setBackground(Color.WHITE);
        } else {
            chessBoardSquares[ii][jj].setBackground(Color.BLACK);
        }
    }
}

createImages();
ログイン後にコピー

以上が堅牢でサイズ変更可能なスイングベースのチェス GUI を構築するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート