如何为可变数量的按钮创建操作?

时间:2013-11-17 21:21:17

标签: java arrays swing jbutton actionevent

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

我确实了解了针对简单按钮推送的动作事件等等,但在这些情况下,我知道屏幕上会有多少按钮。在这里,我需要创建一个具有任意数量的tile的板,它将在Swing中表示为按钮。我需要按一个按钮并将我的角色从一个瓷砖“移动”到另一个瓷砖,所以我需要在一个瓷砖对象上调用一个方法从该瓷砖中移除播放器,然后将其添加到另一个瓷砖。

所以我的问题是,假设按钮的数量是在运行时生成的(并存储在2d数组中),我如何创建一个能够区分每个唯一按钮的actionlistener?

1 个答案:

答案 0 :(得分: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);