【问题标题】:JButton not sending action commandJButton不发送动作命令
【发布时间】:2016-04-17 21:37:05
【问题描述】:

我正在做一个学校项目,我有一段时间试图让 JButton 去做..好吧.. 任何事情!这是我的代码,我不知道其他.java文件有多重要。

我从一个简单的代码开始,但在添加和编辑之后,它似乎无法完全按照我想要的方式更新文本。

    <removed>

传入的var1、var2等都是这样存储的..

它们都在另一个 .java 文件中

Function.fun

    <removed>

【问题讨论】:

  • 我们需要finalproject2.Function 的代码,这样我们就可以看到fun.process 做了什么。大概process 不会更新你的变量。
  • 我将其添加到问题中

标签: java swing jpanel jbutton actionlistener


【解决方案1】:

好的...

  1. 不要依赖static,它对你没有帮助,而且会产生很多难以解决的新问题
  2. 主要问题是,您的代码正在生成NumberFormatException - java.lang.NumberFormatException: For input string: "javax.swing.JSpinner[,8,6,109x26,invalid,layout=com.apple.laf.AquaSpinnerUI$SpinnerLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777536,maximumSize=,minimumSize=,preferredSize=]"

因此,基于异常,很明显Double.parseDouble 没有得到它所期望的值

所以,深入了解您的代码...

if (jspValue1.getValue() instanceof Double) {
    s = jspValue1.toString();
    d = Double.parseDouble(s);
    return d;
} else {
    return 0.00;
}

您将jspValue.toString 的结果传递给Double.parseDouble,但事实是,这不是必需的。

您已经确定来自 JSpinner 的值是双精度数,所以您继续;您需要将其转换...

double value = 0.00d;
if (jspValue1.getValue() instanceof Double) {
    value = (Double)jspValue1.getValue();
}
return value;

【讨论】:

  • 哇!你们摇滚,谢谢!我有最后一个问题,我想在那之后我会 100%!
  • 我不确定我是否正确地将JRadioButtons 传递到Function.fun.process,它似乎没有改变任何值。我什至在将bankAccount.balance 设置为0 的过程结束时添加了一个else,但我仍然没有看到它更新 - (在进行了您推荐的更改后它起作用并将第一行更改为“放屁!”以及在System.out 托盘中获得读数(不知道该怎么称呼它)所以我知道它正在调用动作而不是函数)
  • 你永远不会改变jrbWith的状态
  • 不会JRadioButton jrbWithdraw = new JRadioButton("Withdraw", jrbWith); 导致它在按下时更改 jrbWith 吗?
  • 不,它所做的只是设置初始状态
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-20
  • 2013-04-09
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
相关资源
最近更新 更多