无法调用isSelected();在原始类型布尔值上

时间:2017-03-19 13:24:53

标签: java eclipse

错误在线" grill =(String) grilled.isSelected();"和烤是以前宣称的JCheckBox:烤?,我一直得到错误"不能调用isSelected();在原始类型boolean"

我只想获取烤复选框,以便在我的applet上检查时,将返回字符串

public void displayData()
 { 
     System.out.println(" At Method Display Data");
     String ssize, sandwich, drink, side, grill;
     ssize = (String) size.getSelectedItem();
     boolean  grilled = true;
        String str = String.valueOf(grilled);
        System.out.println("String is: "+str);
     grill = (String) grilled.isSelected();
     sandwich = (String) Sandwiches.getSelectedValue();
     side = (String) Drinks.getSelectedValue();
     drink = (String) Sides.getSelectedValue();

    JTextField textDisplay = new JTextField (ssize+ grill 
               + sandwich + side + "with" + drink);

}

2 个答案:

答案 0 :(得分:1)

在发布的代码中

 boolean  grilled = true;
 // ...
 grill = (String) grilled.isSelected();

我想你想得到这个字段而不是那个局部变量

public class ... {
    JCheckBox grilled;
    //...
}

这称为 shadowing 。查找该名称所指的内容时,局部变量的优先级高于字段,因此编译器认为您正在引用局部变量,这与您的真实意图相矛盾。

您应该使用this.grilled来引用该字段。假设您的字段和方法位于同一个类中,请将grill = (String) grilled.isSelected();替换为grill = String.valueOf(this.grilled.isSelected());

答案 1 :(得分:0)

假设isSelected返回布尔值,并且您尝试将其作为String。你可以这样做

String tmp = "" + isSelected()