How do i know if a Jcheckbox is checked?with GUI [duplicate]

心不动则不痛 提交于 2019-12-13 09:38:26

问题


can you tell me in details how do i know if a jcheckbox is checked or not? method isSelected didn't work with me it gives me an exception while running

{
    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()){//

        ....................
    }

it gives this very long exception while running: Here

can you please help me with this problem?

The code you Boann asked me about


回答1:


Here is the problem:

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);

Because of the "JCheckBox" in front of the assignments, this code is declaring local variables called Ketchup and Garlic. Outside the method, those variables don't exist any more.

Meanwhile, the private fields of ClassName (ProjectInterface?) have the same names but are otherwise unrelated. They are left null.

Move the above code into the ClassName constructor, and remove the "JCheckBox" in front of the assignments. So you'll have:

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);
}


来源:https://stackoverflow.com/questions/20289002/how-do-i-know-if-a-jcheckbox-is-checkedwith-gui

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!