繁体   English   中英

单击时清除Java Swing按钮组

[英]Java Swing buttongroup clear on click

我有一个带有2个单选按钮的按钮组:

private javax.swing.JRadioButton jRadioButtonESPRINCIPAL;
private javax.swing.JRadioButton jRadioButtonESSECUNDARIO;
buttonGroup1 = new javax.swing.ButtonGroup();

我知道我可以通过buttonGroup1.clearSelection()清除组,但是仅当我单击单击的单选按钮时,我才想这样做。

我努力了

    private void jRadioButtonESPRINCIPALMouseClicked(java.awt.event.MouseEvent evt) {                                                     
    if (jRadioButtonESPRINCIPAL.isSelected()) {
        buttonGroup1.clearSelection();
    }
    else{
        jRadioButtonESPRINCIPAL.setSelected(true);
    }
}                                                    

private void jRadioButtonESSECUNDARIOMouseClicked(java.awt.event.MouseEvent evt) {                                                      
    if (jRadioButtonESSECUNDARIO.isSelected()) {
        buttonGroup1.clearSelection();
    }
    else{
        jRadioButtonESSECUNDARIO.setSelected(true);
    }
}   

但是没用

任何帮助将不胜感激

我先前的回答是错误的抱歉。 您必须像这样使用ActionListeners

    jRadioButtonESPRINCIPAL.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            //your code goes here
        }
    });

然后使用变量存储最后选择的RadioButton 然后,在ActionListener您必须检查isSelected()等于最后一个选择。 如果是,则使用buttonGroup1.clearSelection();

因此,最终代码应如下所示:

    jRadioButtonESPRINCIPAL.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            if (jRadioButtonESPRINCIPAL.equals(lastSelectedRadioButton)) {
                buttonGroup1.clearSelection();
                lastSelectedRadioButton = null;
            }
            else {
                lastSelectedRadioButton = jRadioButtonESPRINCIPAL;
            }
        }
    });

    jRadioButtonESSECUNDARIO.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            if (jRadioButtonESSECUNDARIO.equals(lastSelectedRadioButton)) {
                buttonGroup1.clearSelection();
                lastSelectedRadioButton = null;
            }
            else {
                lastSelectedRadioButton = jRadioButtonESSECUNDARIO;
            }
        }
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM