java - 取消选择 JRadioButton

标签 java swing jcombobox jradiobutton

我正在创建的代码涉及 JRadioButton 和 JComboBox。我希望在选择 JRadioButton 时启用 JComboBox,在未选择或取消选择时禁用 JComboBox。我的问题是,如果我取消选择 JRadioButton,则 JComboBox 将不会被禁用。我怎样才能做到这一点?这是我的代码

    LouisClub=new JComboBox();
    LouisClub.setEnabled(false);

    LouisClub.addItem("Writer");
    LouisClub.addItem("Photojournalist");
    LouisClub.addItem("Cartoonist");
    LouisClub.addItem("Layout Artist");

    Louis=new JRadioButton("The Louisian");

    Louis.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            LouisClub.setEnabled(true);
        }
    });

最佳答案

对于此类事情,您应该使用 JCheckBox 而不是 JRadioButton,然后您需要在 actionPerformed() 方法中检查复选框状态并基于该启用/禁用组合框。类似的东西

Louis=new JCheckBox();
Louis.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
       LouisClub.setEnabled(((JCheckBox)e.getSource()).isSeleted());
    }
}

此外,使用 ChangeListener 而不是 ActionListener 可能会更好(不确定)。

    Louis.addChangeListener(new ChangeListener() {
        @Override
        public void stateChanged(ChangeEvent ce) {
             LouisClub.setEnabled(((JCheckBox)ce.getSource()).isSeleted());
        }
    });

关于java - 取消选择 JRadioButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8953450/

相关文章:

java - 我将如何使用 Lucene 为客户建立索引

在继续之前要渲染 Java Swing JFrame

java - JTable 添加新行

java - Swing Timer 内的绘画不起作用

java - AbstractListModel 中刷新 JComboBox 的方法?

Java JComboBox 是否可以将 editable true 设置为仅一项?

java - Hibernate 中的 BigInteger 映射应该使用什么列类型?

java - log4j.xml 配置的公共(public)变量

java - 隐形 JComboBox

java - RMI 服务器端的最大线程数