0

私はクラス プロジェクトとして行う必要があるゲームのユーザー インターフェイスを作成しています。言うまでもなく、私は Swing の経験がありません。

アクションイベントなど、単純なボタンのプッシュについては学びましたが、その場合、画面上にいくつのボタンが表示されるかはわかっていました。ここでは、任意の数のタイルを持つボードを作成する必要があります。これは、Swing でボタンとして表されます。ボタンを押して、キャラクターをあるタイルから別のタイルに「移動」する必要があるため、1 つのタイル オブジェクトでメソッドを呼び出して、そのタイルからプレーヤーを削除し、別のタイルに追加する必要があります。

私の質問は、ボタンの数が実行時に生成される (そして 2 次元配列に格納される) ことを考えると、各一意のボタンを区別できるアクション リスナーを作成するにはどうすればよいでしょうか?

4

1 に答える 1

1

すべてのボタンを同じハンドラーに設定します。

ActionListener a = new ActionListener() {

   @Override
   public void actionPerformed(ActionEvent evt) {
       if (evt.getSource() == buttons[0][0]) {

       }
       // etc
       // common handling
   }
};

for (int i = 0; i < height; ++i)
  for (int j = 0; j < width; ++j)
    buttons[i][j].addActionListener(a);
于 2013-11-17T21:28:35.037 に答える