2016-07-25 3 views
0

У меня проблема с цветом фона кнопки.Изменение цвета фона кнопки не работает

При нажатии кнопки изменяется цвет, который я не указывал в своем коде. Когда я перемещаю курсор от кнопки (все еще удерживая кнопку мыши), он меняет цвет на тот, который я определил в коде.

Я меняю цвет со следующим ChangeListener способом:

btn1.getModel().addChangeListener(new ChangeListener() { 
    public void stateChanged(ChangeEvent e) { 
     ButtonModel model = (ButtonModel) e.getSource(); 

     if (model.isRollover()) { 
      btn1.setBackground(new Color(166,166, 166)); 
     } else if (model.isPressed()) { 
      btn1.setBackground(new Color(255, 64, 0)); 
     } else { 
      btn1.setBackground(new Color(201, 201, 201)); 
     } 
    } 
}); 

Вот снимок экрана всех ситуаций:

  1. Нормальный
  2. Hover
  3. Нажал (ошибка)
  4. Нажата и перемещена курсор от кнопки

ответ

1

При нажатии мышью на верхней части кнопки делает модель как вооруженная и прессуют. Пока мышь остается нажатой, модель остается нажатой, даже если мышь перемещается за пределы кнопки. Напротив, модель только вооружена, пока мышь остается нажатой в пределах кнопки. ButtonModel

+0

Благодарим за отзыв. Хорошо, я понимаю, что происходит, но я не знаю, как это сделать в коде. Sth вроде этого не работает 'else if (model.isArmed()) { btn1.setBackground (новый цвет (255, 64, 0)); } ' –