Ошибка приемника Checkbox

Когда я проверяю, если мой Checkbox выбран или не выбран, функция isSelected() не работает.

У меня есть эта ошибка: the method isSelected() is undefined for the type Checkbox, и я не знаю почему.

Можете ли вы объяснить мне, где проблема или скажите мне, если есть другое решение, чтобы проверить, если мой Checkbox выбран?

Код:

import javax.swing.*;
import java.awt.event.*;

public class Example extends JFrame{
 public JCheckBox one;

 public Example() {
 one = new JCheckBox("CT scan performed");
 one.addItemListener(new CheckBoxListener());
 setSize(300,300);
 getContentPane().add(one);
 setVisible(true);
 }

 private class CheckBoxListener implements ItemListener{
 public void itemStateChanged(ItemEvent e) {
 if(e.getSource()==one){
 if(one.isSelected()) {
 System.out.println("one has been selected");
 } else {System.out.println("nothing");}
 }
 }
 }

 public static void main(String[] args) {
 new Example();
 }
}
1 ответ

Ваш код компилируется для меня, поэтому в другом месте может быть ошибка. Однако я бы использовал состояние ItemEvent. Например:

private class CheckBoxListener implements ItemListener {
 public void itemStateChanged(ItemEvent e) {
 if (e.getStateChange() == ItemEvent.SELECTED) {
 System.out.println("one has been selected");
 } else {
 System.out.println("nothing");
 }
 }
}

редактировать Действительно ли ваша ошибка "the method isSelected() is undefined for the type Checkbox"? Если да, то вы объявляя one в качестве CheckBox переменной или как JCheckBox переменной? Или у вас есть еще один класс под названием Checkbox (обратите внимание на нижний регистр b)?

licensed under cc by-sa 3.0 with attribution.