首页 > 解决方案 > 复选框问题

问题描述

我目前正在自己​​学习 gui,我在使用 JCheckBox 时遇到了麻烦。我怎样才能只做一个答案标记?目前,我可以标记两个答案。最理想的是用户一次只能选择一个选项,如果他选择另一个选项,它会删除第一个选项。有人可以帮忙吗?谢谢!

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

标签: javaswingcheckbox

解决方案


最理想的是用户一次只能选择一个选项

您应该JRadioButton为此而不是 JCheckBox。

然后将每个添加JRadioButton到 aButtonGroup中,ButtonGroup将确保只选择一个按钮。

阅读 Swing 教程中有关如何使用单选按钮的部分以获取更多信息和工作示例。


推荐阅读