Java检查是否选中复选框

Java检查是否选中复选框,java,checkbox,awt,Java,Checkbox,Awt,我使用: 创建一组三个复选框。现在,我想检查哪一个被检查。我使用: 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); 但是这会使类型复选框的方法isSelected()未定义

我使用:

创建一组三个复选框。现在,我想检查哪一个被检查。我使用:

    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);
但是这会使
类型复选框的方法isSelected()未定义。。。建议的解决方案是将强制转换添加到c1,我这样做了,它给出了从复选框到抽象按钮的
无法强制转换。。。同样,如果选中复选框,我怎么能只检查复选框?

您可以使用或(如评论中所述)

使用getState()

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

根据您使用的
isSelected
判断,我得出结论,您有两个错误中的一个:

  • 如果要使用复选框,则应使用
    c1.getState()
    而不是
    isSelected()
  • 您需要
    RadioBox
    而不是
    CheckBox
    ,然后可以使用
    isSelected()
    方法。
  • 你可以试试这个代码

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

    首先,java.awt.Checkbox的超类java.awt.Component中没有.isSelected()方法

    请检查上面的链接,查看从类java.awt.Component继承的方法

    如果使用javax.swing.JComponent中的JCheckBox,则可以使用2nd.isSelected()方法;但不是AWT的复选框

    请浏览下面的链接。。您可以找到.isSelected(),它继承自javax.swing.AbstractButton

    我发现isChecked()方法是赢家

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

    CheckboxGroup#getSelectedCheckbox()
    有什么问题吗?如果它们相互排斥,则似乎比复选框更合适。
    // check is ckeck box id
    if (check.isSelected()) {
               // your code for checked;
     } else {
               // our code for not checked;
     }
    
     // Check to see if box is checked
     if (c1.isChecked()) {
          // Your code if the box is checked
     } else {
          // Your code if the box is not checked
     }