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 に答える
-1

一般に、Swing では、バックエンドで行われた変更はビジュアル要素に反映されません。よく知られている例外の 1 つはJTextField.setText()(setText を呼び出すと、ビジュアル テキスト要素がすぐに更新されます) です。

API ドキュメントにも記載されています: http://docs.oracle.com/javase/6/docs/api/javax/swing/AbstractButton.html#setSelected(boolean)

コードをそのまま使用することもできますが、コンテナーを (無効に) 検証する必要があります。

于 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 に答える