Java:使用MouseListener更改相邻JButton的颜色

时间:2017-03-22 09:11:59

标签: java jbutton mouselistener

我有一个15 x 15的JButton二维数组。

当我按住其中一个按钮(即Button[i][j])时, 我想更改相邻按钮的颜色(例如Button[i-1][j]Button[i+1][j]Button[i][j-1]Button[i][j+1])。

我该怎么做?

以下是我的2D数组实现的一部分。该按钮暂时不起作用。

    fb = new JButton[15][15];

    for(int i = 0; i < 15; i++){
        for(int j = 0; j < 15; j++){
            fb[i][j] = new JButton();
            fb[i][j].setBackground(Color.WHITE);
            fb[i][j].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
            fb[i][j].setPreferredSize(new Dimension(40, 40));
            //fb[i][j].setEnabled(false);
            grid.add(fb[i][j]);
        }
    }

1 个答案:

答案 0 :(得分:2)

试试这个块:

<div></div>

和听众:

            if (i - 1 >= 0) {
                if (fb[i - 1][j] != null) {
                    fb[i - 1][j].setBackground(Color.RED);
                }
            } else if (i + 1 < 15) {
                if (fb[i + 1][j] != null) {
                    fb[i + 1][j].setBackground(Color.RED);
                }
            } else if (j - 1 >= 0) {
                if (fb[i][j - 1] != null) {
                    fb[i][j - 1].setBackground(Color.RED);
                }
            } else if (j + 1 < 15) {
                if (fb[i][j + 1] != null) {
                    fb[i][j + 1].setBackground(Color.RED);
                }
            }