Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-ItemListener不监听我的组件?_Java_Swing_Itemlistener - Fatal编程技术网

Java-ItemListener不监听我的组件?

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

我把程序的一部分放在这里。基本上,问题是没有调用item listener方法。在这里,如果用户选择正确的答案并按下“提交”,actionlistener方法将告诉他/她答案是否正确

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方法。我希望有人能给我一个解决方案,因为我不知道该给代码添加什么。