web-dev-qa-db-ja.com

Javaチェックボックスがチェックされているかどうかをチェック

私が使う:

_    CheckboxGroup cg = new CheckboxGroup();
    Checkbox c1 = new Checkbox("A", false, cg);
    Checkbox c2 = new Checkbox("B", false, cg);
    Checkbox c3 = new Checkbox("C", true, cg);
_

3つのチェックボックスのグループを作成します。ここで、どちらがチェックされているかを確認したいと思います。私が使う:

_if (c1.isSelected()) { }
_

しかし、これによりThe method isSelected() is undefined for the type Checkbox...が得られます。推奨される解決策はc1にキャストを追加することです。そうすると_Cannot cast from Checkbox to AbstractButton_...が得られます。

6
user3265784

GetState()を使用します

boolean checked = c1.getState();
if(c1.getState()) {
  //c1 is checked
} else if (c2.getState()) {
  //
}

[〜#〜]または[〜#〜]

Checkbox cb = cg.getSelectedCheckbox();
if(null != cb) {
  //not checked
} else {
  System.out.println(cb.getLabel() + " is checked");
}
8
user2575725

Checkbox::getState() または(コメントで述べたように) CheckboxGroup#getSelectedCheckbox() を使用できます

1
NiziL

すべてのJava.awt.Checkboxの1つ目は、スーパークラスであるJava.awt.Componentに.isSelected()メソッドがありません。

https://docs.Oracle.com/javase/7/docs/api/Java/awt/Checkbox.html

クラスJava.awt.Componentから継承されたメソッドについては、上記のリンクを確認してください

2番目の.isSelected()メソッドは、javax.swing.JComponentからJCheckBoxを使用する場合に使用できます。 AWTのCheckBoxではありません...

以下のリンクを参照してください。javax.swing.AbstractButtonから継承された.isSelected()を見つけることができます。

https://docs.Oracle.com/javase/7/docs/api/javax/swing/JCheckBox.html

1
Ram Satya

isSelectedの使用から判断すると、2つの誤りのうちの1つがあると結論付けました。

  1. チェックボックスを使用したい場合は、c1.getState()ではなくisSelected()を使用してください。
  2. RadioBoxの代わりにCheckBoxが必要な場合は、isSelected()メソッドを使用できます。 2つについてはこちらを確認してください
0

あなたはこのコードを試すことができます

// check is ckeck box id
if (check.isSelected()) {
           // your code for checked;
 } else {
           // our code for not checked;
 }
0
Madhuka Dilhan