7

在我的程序中,每当调用此方法时,我都想取消选中所有复选框。有人可以解释为什么它不起作用吗?每当我调用此方法时,复选框仍处于选中状态。

private void nextQuestionButtonActionPerformed(java.awt.event.ActionEvent evt) {                                                   

     clearOptions();

}    

public void clearOptions ()   
{ 
    //Make sure the check boxes are not checked
    optionA.setSelected(false);
    optionB.setSelected(false);
    optionC.setSelected(false);
    optionD.setSelected(false);  
}
4

6 回答 6

11

首先,您需要将所有复选框的代码放在例如状态更改方法的顶部,然后取消选中复选框,您可以创建一个变量,如状态并将变量值设置为 false,然后您可以打电话checkbox.setSelected(false);boolean state = false; CheckBox.setSelected(state);就是这样!

于 2013-09-27T09:20:23.047 回答
1

最简单的方法是将相同的按钮组应用于所有复选框。然后只需使用:

buttonGroup1.clearSelection();

在尝试了几乎所有方法之后。这是迄今为止最简单和最有效的一种。

于 2016-03-08T20:57:16.447 回答
0

如果您确定checkbox已选中,则可以切换它。

checkbox.toggle();
于 2018-02-11T09:28:34.690 回答
0

我尝试将此方法用于具有空参数的复选框组:

checkboxGroup1.setSelectedCheckbox(null);
于 2021-04-21T04:31:49.260 回答
-1

一般来说,在 Swing 中所做的任何更改都不会传播到可视元素。一个众所周知的例外是JTextField.setText()(对 setText 的任何调用都会立即更新可视文本元素)。

它甚至记录在 API 文档中:http://docs.oracle.com/javase/6/docs/api/javax/swing/AbstractButton.html#setSelected(boolean)

您可以保留您的代码,但您必须(in)验证容器。

于 2013-03-25T16:34:25.117 回答
-2
 public void clearOptions ()   
{ 
            checkbox1.setState(false); 
             checkbox2.setState(false);
             checkbox3.setState(false);
             checkbox4.setState(false);
}
于 2020-06-23T21:17:46.663 回答