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

标签 java arrays swing jbutton actionevent

我正在为一个游戏创建一个用户界面,我必须将其作为一个类项目来完成,不用说我对 Swing 没有经验。

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

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

最佳答案

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

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);

关于java - 如何为可变数量的按钮创建操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20036326/

相关文章:

arrays - 使用 java 流更新字符串数组

java - GridBagLayout 被标记为错误

java - JFrame 问题(删除文本图像添加新图像)

java - 如何在 Java.Swing 中重置扫雷游戏板

java - 没有 client_secret 的 Spring Security OAuth 2.0

javascript - 在 JS 中转换 OHLC 中的连续股票数据(开盘价、最高价、最低价、收盘价)

java - 有没有一种简单的方法可以知道当前是否显示模式对话框?

java - 整数数组列表到更小的整数数组

java - 剑道网格防止列变小

java - 多部分/表单数据的问题