【问题标题】:How can I create actions for a variable number of buttons?如何为可变数量的按钮创建操作?
【发布时间】:2013-11-17 21:21:17
【问题描述】:

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

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

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

【问题讨论】:

    标签: java arrays swing jbutton actionevent


    【解决方案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);
    

    【讨论】:

      猜你喜欢
      • 2012-01-02
      • 1970-01-01
      • 2017-08-02
      • 1970-01-01
      • 2016-11-12
      • 2020-03-21
      • 2022-07-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多