【发布时间】:2020-01-26 03:45:41
【问题描述】:
当我在文本字段中输入一个范围内的数字时,布尔值应根据输入的数字而改变。但对于 10 到 30 和 30 以上的数字,它仍然是错误的。我的代码中缺少什么?
Submitbtn.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
int value = Integer.valueOf(candynumf.getText());
if(value > 0 && value <= 10)
{
candypackage1 = true;
candypackage2 = false;
candypackage3 = false;
}
else if(value > 10 && value <= 30)
{
candypackage1 = false;
candypackage2 = true;
candypackage3 = false;
}
else if(value > 30)
{
candypackage1 = false;
candypackage2=false;
candypackage3 = true;
}
String candypack = String.valueOf(candypackage1);
candypackage1bl.setText(candypack);
});
【问题讨论】:
-
将
candymuf.getText()更改为candymuf.getText().toString() -
我得到了一个错误。哦 numf 表示数字字段
-
另外,推荐使用
Integer.parseInt()获取原始值 -
@Vishal 假设
#getText()返回一个String(这可能是一个安全的假设,尽管minimal reproducible example 会说明这一点),在结果上调用#toString()是多余的。 -
在您的每个
if块中,您声明了名为candypackage1、candypackage2 和candypackage3 的全新变量。您正在为这些新变量分配值,而不是您班级的 candypackage1 等字段。尝试从每个if块的每一行中删除单词boolean。