0

我正在为我必须作为类项目做的游戏创建用户界面,不用说我没有使用 Swing 的经验。

我确实了解了 actionevents 以及用于简单按钮推送的东西,但在那些情况下,我知道屏幕上会有多少个按钮。在这里,我需要创建一个带有任意数量的图块的板,这些图块将在 Swing 中表示为按钮。我需要按下一个按钮并将我的角色从一个图块“移动”到另一个图块,因此我需要在一个图块对象上调用一个方法以将玩家从该图块中移除,然后将其添加到另一个图块。

所以我的问题是,考虑到按钮的数量是在运行时生成的(并存储在二维数组中),我怎样才能制作一个能够区分每个唯一按钮的动作监听器?

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 回答