Java-ItemListener不监听我的组件?
我把程序的一部分放在这里。基本上,问题是没有调用item listener方法。在这里,如果用户选择正确的答案并按下“提交”,actionlistener方法将告诉他/她答案是否正确Java-ItemListener不监听我的组件?,java,swing,itemlistener,Java,Swing,Itemlistener,我把程序的一部分放在这里。基本上,问题是没有调用item listener方法。在这里,如果用户选择正确的答案并按下“提交”,actionlistener方法将告诉他/她答案是否正确 static boolean answer = false; // returns this as true if user got question right public void QuizPanel() { QuizPanel = new JPanel(); QuizPanel.setLa
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
}
}
不会发生任何事情,也不会告诉用户他/她是否做对了/错了。你说的是
objectsource=e.getItemSelectable()
但是您将
e1
声明为您的ItemEvent
尝试更改
对象源=e.getItemSelectable()代码>到对象源=e1.getItemSelectable()代码>
QuizPanel = new JPanel();
使用标准Java命名约定。变量名称不应以大写字符开头:
QuizPanel.setLayout(null);
...
label.setBounds(10, 50, 400, 20);
不要使用null布局和setBounds()。Swing设计用于布局管理器
public void itemStateChanged1(ItemEvent e1) throws IOException
我不知道你的代码是如何编译的。你实施了错误的方法。还有,为什么ItemListener会抛出IOException
太多的小错误让人猜不出你做错了什么。发布正确的SSCCE。e.GetItemSelective()代码>逻辑指示此代码甚至不应编译。另外,为了更快地获得更好的帮助,请包含一个。您是否使用IDE编写此代码?此代码不编译,从开始;您忘记了使用System.out.println()命令行,并以未实现ItemListener方法结束(您的是itemStateChanged1。为什么是1?这只是SSCCE。
-它不是SSCCE。您发布的代码是可编译的还是可执行的?请阅读相关内容&停止将该术语应用于(不可编译的)代码段。我修复了一些小错误。我没有复制粘贴。。。SSCE不在了,我觉得没什么变化。没有SSCCE,没有固定的建议,所以我想你真的不需要任何帮助。我可以将变量更改为适当的约定,但更新布局与问题无关。我仍然无法理解为什么System.out.println没有显示?您的ItemListener甚至没有println()语句。除非你能发布一个合适的SSCCE,否则我怀疑你会得到帮助。你只是在浪费我们的时间,因为你发布的代码毫无意义。我删除了IO异常,重写了一些代码行,并使用了正确的符号。现在可以用了。@BDillan那就修好吧?你给这里的人提供了无效信息,我编辑了它。我只是不知道还能在哪里寻求帮助,也不知道为什么不调用itemlistener方法。我希望有人能给我一个解决方案,因为我不知道该给代码添加什么。