2D Button Array ActionListener, изменение цвета? - PullRequest
1 голос
/ 04 марта 2012

У меня есть этот массив 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 ]

3 голосов
/ 04 марта 2012

вы можете использовать JToggleButton и поместить их в ButtonGroup , чтобы вы могли рассматривать их как группу и установить цвет для активированного.

P.S. Я буду поддерживать связь с этой веткой в ​​течение следующих 24 часов, если возникнут какие-либо вопросы, которые я постараюсь объяснить подробнее.

0 голосов
/ 18 ноября 2017
if(e.getSource()== null)
{
    //must find the position where the user clicks and make it orange
     button[i][j].setBackground(Color.ORANGE);
}

Попробуйте этот код выше в открытом методе void actionPerformed (ActionEvent e).

...