【问题标题】:Boolean value didn't change despite input from text field尽管从文本字段输入,布尔值没有改变
【发布时间】: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

标签: java boolean


【解决方案1】:

您的代码将局部变量 candypackage1 设置为 true,而不是字段。然后将文本设置为字段 candypackage1。将用于设置文本的代码移到 if 语句内,将本地声明移到 if 语句外,或者设置字段而不是创建局部变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-28
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多