【问题标题】:How do I compare integer to JLabel?如何将整数与 JLabel 进行比较?
【发布时间】:2014-01-26 20:51:38
【问题描述】:

好的,所以我有这 2 个标签,如果它们都是 0,则按钮将被禁用。这是我做过但没能做到的,请指导我,非常感谢!

int quantity = 0;
int sum = 0;

我将它们初始化为 0,然后经过一些 IF 循环并运行良好,并且有一个事件有点像 clear,我再次将它们重新分配为 0,如下所示:

quantity = 0;
sum = 0;

那么现在我有 2 个标签,我想与这 2 个值进行比较,如果两者都是 0,则禁用一个按钮,这就是我所做的但失败了,该按钮仍然保持启用状态。然后我意识到我在比较字符串 0 而不是整数 0,我怎样才能将它与数量和总和进行比较?非常感谢!

 if ("0".equals(jLabel4.getText()) || ("0".equals(jLabel4.getText())));
    {
        jButton2.setEnabled(false);
    }

【问题讨论】:

  • 您无法将 JLabel 与 int 进行比较。您可以将 JLabel 的文本与另一个字符串进行比较,但这有一种有趣的代码味道。您应该将整数与整数进行比较。
  • 如需尽快获得更好的帮助,请发帖SSCCE
  • JLabel 的值都为零时,您希望禁用该按钮,但您有一个逻辑或运算符。
  • 您的代码示例两次引用了jLabel4。这是故意的吗?如果没有,请确保正确复制/粘贴您的代码。这似乎也很奇怪——JLabels 无法编辑,因此您的代码必须已经知道这些值是什么。

标签: java swing integer jlabel


【解决方案1】:

如果要比较整数,为什么要比较字符串?

0 == Integer.parseInt(jLabel4.getText());

也用try-catch块包围它

boolean equals = false;
try{
     equals = ( 0 == Integer.parseInt(jLabel4.getText()));
}catch(NumberFormatException e){
    //equals = false;
}

【讨论】:

  • 非常感谢,帮了我大忙,我还是 java 新手,不知道应该怎么做比较整数
【解决方案2】:

您应该将您的 gui 代码(“视图”)与非 gui 逻辑代码(“模型”)分开。 GUI 应该显示模型的状态,即在您的 JLabels 中显示模型的两个整数持有的值,但是应该检查模型的整数是否为 0 值,然后您的 GUI 应该启用或禁用相应的按钮。

【讨论】:

  • 也许是因为这并没有为 OP 问题提供真正具体的解决方案
猜你喜欢
  • 1970-01-01
  • 2016-01-16
  • 1970-01-01
  • 1970-01-01
  • 2017-06-21
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
相关资源
最近更新 更多