我正在创建一个游戏的用户界面,我必须做一个类项目,不用说我没有Swing的经验。
我确实了解了针对简单按钮推送的动作事件等等,但在这些情况下,我知道屏幕上会有多少按钮。在这里,我需要创建一个具有任意数量的tile的板,它将在Swing中表示为按钮。我需要按一个按钮并将我的角色从一个瓷砖“移动”到另一个瓷砖,所以我需要在一个瓷砖对象上调用一个方法从该瓷砖中移除播放器,然后将其添加到另一个瓷砖。
所以我的问题是,假设按钮的数量是在运行时生成的(并存储在2d数组中),我如何创建一个能够区分每个唯一按钮的actionlistener?
答案 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);