Я пытаюсь создать gui в java swing, который позволяет пользователю загружать места с помощью кнопки переключения. Первоначально у меня есть цвет кнопки по умолчанию, чтобы проверить, работает ли событие click. Кнопка должна быть красной, чтобы обозначить, что она забронирована, и пожелтела, чтобы обозначить, что она была заблокирована.JToggleButton в java swing не распознается isSelected() метод?
Вот мой actionPerformed метод
@Override
public void actionPerformed(ActionEvent e) {
GoldSeat seat = (GoldSeat)e.getSource();
if(seat.isSelected()){
seat.setBackground(Color.red);
}
else
{
seat.setBackground(Color.yellow);
}
}
GoldSeat просто производный класс JToggleButton. По какой-то причине, когда я нажимаю кнопку, она не становится красной (она переходит в серый цвет по умолчанию), но когда я ее снова щелкнул, она становится желтой. Таким образом, казалось бы, что «истинное» или «включено» состояние кнопки не работает, но «ложь». Я не знаю, почему isSelected() работает неправильно.
Любая идея, как решить эту проблему?
EDIT: Я бросил вместе быстрый JFrame с одним JToggleButton на нем с помощью простого перетаскивания интерфейс Netbeans, который генерируется этот код:
jToggleButton1 = new javax.swing.JToggleButton();
jToggleButton1.setText("jToggleButton1");
jToggleButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jToggleButton1ActionPerformed(evt);
}
});
И событие действия:
private void jToggleButton1ActionPerformed(java.awt.event.ActionEvent evt) {
if(jToggleButton1.isSelected()){
jToggleButton1.setBackground(Color.red);
}else {
jToggleButton1.setBackground(Color.yellow);
}
}
Это выполняет то, что я хочу, но я не могу воссоздать его с моим производным классом, который я опубликовал выше. Я что-то не так с моим кодом?
'Я делаю что-то не так с моей code? '- может быть, не так, но разные. Я уже сказал, что это вопрос LAF. Возможно, два фрейма используют другой LAF? В любом случае мы не можем сказать, что вы делаете неправильно, основываясь на нескольких случайных строках кода. – camickr