나는 내 프로그램의 일부를 가져 와서 여기에 코드를 넣었다. 기본적으로 문제는 항목 수신기 메서드가이 아닌 것입니다. 여기에서 사용자가 옳은 대답을 선택하고 "제출"을 누르면 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