Я взял сегмент своей программы и разместил здесь код. В основном проблема заключается в том, что метод прослушивания элемента не называется. Здесь, если пользователь выбирает правильный ответ и нажимает «Отправить», метод actionlistener скажет ему/ей, если они ответят правильно.Java - ItemListener не слушает мои компоненты?
static boolean answer = false; // returns this as true if user got question right
public void QuizPanel() {
QuizPanel = new JPanel();
QuizPanel.setLayout(null); // default layout
JLabel label = new JLabel("True/False- Java is Object Orientated?");
label.setBounds(10, 50, 400, 20);
QuizPanel.add(label);
option1 = new JCheckBox("True");
option1.setSelected(false);
option1.setBounds(10, 70, 120, 40);
QuizPanel.add(option1);
option1.addItemListener(this); // Adds a item listener
option2 = new JCheckBox("False");
option2.setSelected(false);
option2.setBounds(40, 70, 120, 40);
QuizPanel.add(option2);
option2.addItemListener(this);
///////////////////////////////////////
JButton submit = new JButton("SUBMIT ANSWER:");
submit.setBounds(10, 100, 150, 20);
QuizPanel.add(submit);
submit.addActionListener(new ActionListener() { // Action Listener
public void actionPerformed(ActionEvent evt2) {
System.out.println ("Your answer is " + answer); // Got it right?
}
});
}
public void itemStateChanged1(ItemEvent e1) {
Object source = e.getItemSelectable();
if (source == option1) {
answer = true;
} else {
//nothing- stays false
}
}
Ничего не происходит, и он не сообщает пользователю, правильно ли он/она прав.
'e.getItemSelectable();' логика требует, чтобы этот код даже не компилировался. Кроме того, для лучшей помощи, пожалуйста, добавьте [sscce] (http://www.sscce.org). – mre
Вы используете IDE, чтобы написать это? – Tdorno
Этот код не компилируется вообще, начиная с; вы забыли на линии с System.out.println() и закончили тем, что не применяли методы ItemListener (ваш - itemStateChanged1. Почему 1?) – stealthjong