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

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

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

    });


唯一会改变的是_grid的坐标。我尝试在做动作侦听器的早期做某事,但是日食迫使我将整数定为最终值。我想知道是否容易编写使用被调用的网格值的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();
        }

    });

最佳答案

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



不,没有



我曾尝试过做动作侦听器的早期工作,但是
蚀迫使我将整数定为最终值。



声明必需的vasriable作为局部变量
使用put/getClientProperty有关最简单方法的示例,您可以将此方法与另一个附加值进行多重播放
为了更好地提供帮助,请尽快发布SSCCE,简短,可运行,可编译,简化且仅关于JButton网格

09-27 15:00