错误在线" 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);
}
答案 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()