Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何为数量可变的按钮创建操作?_Java_Arrays_Swing_Jbutton_Actionevent - Fatal编程技术网

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

Java 如何为数量可变的按钮创建操作?,java,arrays,swing,jbutton,actionevent,Java,Arrays,Swing,Jbutton,Actionevent,我正在为一个游戏创建一个用户界面,我必须把它作为一个类项目来做,不用说我对Swing没有经验 我确实了解了actionevents和其他一些简单的按钮按钮,但在这些情况下,我知道屏幕上会有多少个按钮。在这里,我需要创建一个具有任意数量瓷砖的板,这些瓷砖将表示为Swing中的按钮。我需要按下一个按钮并将我的角色从一个互动程序“移动”到另一个互动程序,因此我需要调用一个互动程序对象上的方法来从该互动程序中移除玩家,然后将其添加到另一个互动程序中 因此,我的问题是,鉴于按钮的数量是在运行时生成的(并存

我正在为一个游戏创建一个用户界面,我必须把它作为一个类项目来做,不用说我对Swing没有经验

我确实了解了actionevents和其他一些简单的按钮按钮,但在这些情况下,我知道屏幕上会有多少个按钮。在这里,我需要创建一个具有任意数量瓷砖的板,这些瓷砖将表示为Swing中的按钮。我需要按下一个按钮并将我的角色从一个互动程序“移动”到另一个互动程序,因此我需要调用一个互动程序对象上的方法来从该互动程序中移除玩家,然后将其添加到另一个互动程序中


因此,我的问题是,鉴于按钮的数量是在运行时生成的(并存储在2d数组中),我如何制作一个能够区分每个唯一按钮的actionlistener?

将所有按钮设置为同一个处理程序:

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);
ActionListener a=新的ActionListener(){
@凌驾
已执行的公共无效操作(操作事件evt){
if(evt.getSource()==按钮[0][0]){
}
//等
//一般处理
}
};
对于(int i=0;i