Java 复选框问题
我目前正在自学gui,我在使用JCheckBox时遇到了麻烦。我怎么能只做一个答案?目前,我可以标记这两个答案。 mt的理想情况是,用户一次只能选择一个选项,如果他选择了另一个选项,则会删除第一个选项的选择。 有人能帮忙吗?谢谢Java 复选框问题,java,swing,checkbox,Java,Swing,Checkbox,我目前正在自学gui,我在使用JCheckBox时遇到了麻烦。我怎么能只做一个答案?目前,我可以标记这两个答案。 mt的理想情况是,用户一次只能选择一个选项,如果他选择了另一个选项,则会删除第一个选项的选择。 有人能帮忙吗?谢谢 import java.awt.GridLayout; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import javax.swing.JCheckBox; import
import java.awt.GridLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class CheckBoxTry
{
JCheckBox show1,show2;
JLabel label1, label2;
private JFrame jf;
public CheckBoxTry(){
jf= new JFrame();
jf.setSize(300,300);
jf.setVisible(true);
jf.setLayout(new GridLayout(2,2));
label1= new JLabel("");
jf.add(label1);
label2= new JLabel("");
jf.add(label2);
show1=new JCheckBox("show1");
show2=new JCheckBox("show2");
jf.add(show1);
jf.add(show2);
event e= new event();
show1.addItemListener(e);
show2.addItemListener(e);
}
public class event implements ItemListener{
public void itemStateChanged (ItemEvent e){
if (show1.isSelected())
{
label1.setText("1 selected");
}else{
label1.setText("");
}
if (show2.isSelected())
{
label2.setText("2 selected");
}else{
label2.setText("");
}
}
}
public static void main(String[] args)
{
CheckBoxTry as= new CheckBoxTry();
}
}
您可以使用setSelected(booleanb)方法对复选框执行此操作。然而,为了让他们一起工作,你必须把他们的听众分开
@Override
public void itemStateChanged(ItemEvent e) {
if (e.getSource() == show1) {
if (show1.isSelected()) {
label1.setText("1 selected");
show2.setSelected(false); //remove selection from show2 and call again this item listener
} else {
label1.setText("");
}
} else if (e.getSource() == show2) {
if (show2.isSelected()) {
label2.setText("2 selected");
show1.setSelected(false);//remove selection from show1 and call again this item listener
} else {
label2.setText("");
}
}
}
另一个友好提醒是:
SwingUtilities.invokeLater(() -> {
CheckBoxTry as = new CheckBoxTry(); // All swing apps must run on their own thread.
});
mt的理想是用户一次只能选择一个选项
您应该是一个JRadioButton
,而不是JCheckBox
然后将每个JRadioButton
添加到ButtonGroup
中,ButtonGroup
将确保只选择一个按钮
有关更多信息和工作示例,请阅读上Swing教程的部分