【问题标题】:Inner class actionlistener内部类动作监听器
【发布时间】:2013-04-02 23:23:55
【问题描述】:

在我的代码的不同部分,我将运行类似的变体:

        _grid[4][4].addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            moveBeginningPieceLeft(_square[4][11]);
            refreshBoard();
        }

    });

唯一会改变的是_grid的坐标。我之前尝试过做一些动作监听器,但 Eclipse 迫使我将整数设为最终值。我想知道是否很容易编写一个 addListener 方法,该方法使用它被调用的网格的值(_grid 是一个 JButtons 数组,_square 是一个堆栈数组)。因此,如果我在 _grid[2][5] 上调用 addListener,它只会从 _grid 获取坐标 [2][5] 并放置在 actionlistener 的 _square 部分。所以,

_grid[0][5].addListener();

相同
        _grid[0][5].addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            moveBeginningPieceLeft(_square[0][5]);
            refreshBoard();
        }

    });

【问题讨论】:

  • 除非对象本身拥有坐标,否则不会。在你的情况下没有。您将不得不依赖 _grid 和 _square 范围内的两个索引变量。

标签: java swing multidimensional-array jbutton getter-setter


【解决方案1】:

我想知道编写一个 addListener 方法是否容易使用 被调用的网格的值(_grid 是一个数组 JButtons 和 _square 是一个堆栈数组)。

  • 不,没有

我之前尝试过做一些动作监听器,但是 日食迫使我将整数设为最终值。

  • 将所需的可变变量声明为局部变量

  • 有关使用put/getClientProperty 的最简单方法的示例,您可以将此方法与另一个附加值进行多重播放

  • 为了获得更好的帮助,请尽快发布 SSCCE,简短、可运行、可编译、缩减且仅关于 JButton 网格

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-02
    • 2014-04-03
    • 2013-12-24
    • 2011-09-26
    • 2013-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多