1

私は最初のGUIベースのゲームをJavaでコーディングしようとしており、マインスイーパを選択しました。私はJavaの初心者であり(ゲームのロジック部分をプログラムできるので、「クラスとは何か」という意味での「初心者」ではありません)、Swingの完全な新入生なので、レイアウトを手動で作成するのではなく、グラフィックス部分にWYSIWYGエディター(NetBeansエディターなど)を使用できれば幸いです。

ただし、エディタで遊んだ後、私の現在の理解では、Netbeansエディタで設定できるのは一定量の異なるコンテナのみです。つまり、ボードの寸法を事前に知っておく必要があります。ただし、ボードのサイズを動的に変更して、ユーザーが3個の爆弾を使用した100x105グリッドと同様に、31個の爆弾を使用した9x9グリッドでプレイできるようにします。WYSIWYGエディターを使用して、このような動的なサイズ変更(もちろん、オンザフライではありません-ユーザーがゲームの開始時にどのグリッドでプレイするかを決定できることを意味します)を作成できますか、またはそのようなものはすべてコーディングする必要がありますこれを最初から自分で?

4

2 に答える 2

2
  • 手でレイアウトを書いてください、これはまさにのための仕事ですGridLayout

  • 使用するJButton、より良いと一緒に使用することになるでしょJToggleButtonIcon

  • /に適切setXxxIcon methodsに使用JButtonJToggleButton

于 2013-01-10T11:24:16.880 に答える
1

ええと、GUI エディターでは行わないでください。おそらく、あまりにも多くの可変機能コンポーネントを作成することになるでしょう。

少なくともその一部を自分でコーディングしてください。マインスイーパ フィールドでおそらく使用するボタンは、ループ内で簡単に作成できるはずです。ボタンにはデータ フィールドがあり、フィールドのステータス (爆弾、爆弾なし、非表示、マーク済み、空) に使用できます。したがって、ボタン用の ONE Actionlistener を作成すると、そこで反応できるはずです。

あなたの本当の質問: はい、使用するレイアウトに大きく依存します。サイジングを避け、ボタンのサイズを設定する必要がある場合は、常に 100% の基準を参照してください。

setButtonSize(){
  int iWindowWidth = 437; // example, can be any value. Stands for 100%
  button1.setWidth((int)(iWindowWidth * 0.2)); // 20%
  button1.setWidth((int)(iWindowWidth * 0.3)); // 30%
  button1.setWidth((int)(iWindowWidth * 0.05));//  5%
  button1.setWidth((int)(iWindowWidth * 0.45));// 45%
}

これは、列幅を定義する動的幅を持つテーブルを作成する方法でもあります。

于 2013-01-10T11:34:09.240 に答える