Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/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 如何知道是否使用GUI检查了Jcheckbox_Java_User Interface_Checkbox - Fatal编程技术网

Java 如何知道是否使用GUI检查了Jcheckbox

Java 如何知道是否使用GUI检查了Jcheckbox,java,user-interface,checkbox,Java,User Interface,Checkbox,您能详细告诉我如何知道jcheckbox是否已检查?方法isSelected对我不起作用,它在运行时给了我一个异常 { Sandwich = new JButton("Tall"); contentPane.add(Tall); Sandwitch.setBounds(350, 110, 90,40); //in main Sandwitch.addActionListener(this); } ..... public void actionPerform

您能详细告诉我如何知道jcheckbox是否已检查?方法isSelected对我不起作用,它在运行时给了我一个异常

{
    Sandwich = new JButton("Tall");
    contentPane.add(Tall);
    Sandwitch.setBounds(350, 110, 90,40);   //in main
    Sandwitch.addActionListener(this);
}
.....

public void actionPerformed(ActionEvent event) {
    JButton clickedButton = (JButton) event.getSource();

    String  buttonText = clickedButton.getText();
    ..........
    if(clickedButton.getText()=="Sandwitch"){
        if(Ketchup.getState()&&!Garlic.getState()){//

        itm=new Item(""+m+clickedButton.getText(),3.0);
        xyz.addItem(itm);
        textArea.append(" "+clickedButton.getText()+",");
        textArea.append(" "+itm.getPrice()+"\n");
    }
    else if(!Ketchup.isSelected()&&Garlic.isSelected()){//

        ....................
    }
它在运行时会出现以下很长的异常:

你能帮我解决这个问题吗

问题出在这里:

JCheckBox Ketchup = new JCheckBox();
Ketchup.setText("Ketchup");
Ketchup.setSize(50,25);
contentPane.add(Ketchup);
Ketchup.setBounds(175, 100, 175,25);

JCheckBox Garlic = new JCheckBox();
Garlic.setText("Garlic");
Garlic.setSize(50,25);
contentPane.add(Garlic);
Garlic.setBounds(175, 120, 175,25);
由于赋值前面有“JCheckBox”,所以这段代码声明了名为Ketchup和garmal的局部变量。在方法之外,这些变量不再存在

同时,ClassName(ProjectInterface?)的私有字段具有相同的名称,但在其他方面不相关。它们是空的

将上述代码移到ClassName构造函数中,并删除赋值前面的“JCheckBox”。因此,您将有:

private JCheckBox Ketchup;
private JCheckBox Garlic;

public ClassName() {
    Ketchup = new JCheckBox();
    Ketchup.setText("Ketchup");
    Ketchup.setSize(50,25);
    add(Ketchup);
    Ketchup.setBounds(175, 100, 175,25);

    Garlic = new JCheckBox();
    Garlic.setText("Garlic");
    Garlic.setSize(50,25);
    add(Garlic);
    Garlic.setBounds(175, 120, 175,25);
}

另外,在比较OP的字符串时,请reming OP来更改这个讨厌的
=
。注意:我不确定OP的真正类名是什么。在堆栈跟踪中,它是“ClassName”或“ProjectInterface”。在发布的代码中,它是小写的“className”。我实际上是在文章中提到上面的代码,而不是链接:)非常感谢您的帮助,但同样的例外仍然出现:(问题可能是我使用isSelected()方法的方式有问题吗?或者它不是正确的方法?我在这里将其更改为className,以便于阅读