2D按钮阵列ActionListener,颜色变化?

时间:2012-03-04 16:14:06

标签: java swing colors jbutton multidimensional-array

我有这个2D JButton数组(颜色为白色),而我想要做的就是当我点击一个正方形时,它会变成橙色。当我点击另一个正方形时,该正方形也变为橙色,但我点击的第一个正方形将恢复为正常的白色。如果没有将所有方块变成橙色,我该怎么做?

这是一个可视化: enter image description here

顺便说一句,当我点击带数字的方块时,它们的颜色不会改变,可以将它们视为setEnabled(false)按钮。我已经知道如何更改按钮的颜色,我只想知道颜色是如何在正方形之后传递的。

感谢任何可以提供帮助的人!

编辑:我的“尝试”,但它使我的所有null有价值的按钮变为橙色。

button[i][j].addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent e){
       for(int i = 0; i < button.length; i++)
           for(int j = 0; j < button.length; j++){
               if(g.gameBoard[i][j] == null){
                   //must find the position where the user clicks and make it orange
                    button[i][j].setBackground(Color.ORANGE);
               }
           }   
       }
}); 

2 个答案:

答案 0 :(得分:3)

您可以使用JToggleButton并将它们放在ButtonGroup中,这样您就可以将它们视为一个组并将颜色设置为激活的颜色。

P.S。如果有任何问题,我将在接下来的24小时内与该主题保持联系。我将尝试解释更多。

答案 1 :(得分:-1)

if(e.getSource()== null)
{
    //must find the position where the user clicks and make it orange
     button[i][j].setBackground(Color.ORANGE);
}

在public void actionPerformed(ActionEvent e)方法中尝试以上代码。