【问题标题】:Give a checkbox an integer value and store in JavaDB给复选框一个整数值并存储在 JavaDB 中
【发布时间】:2016-01-05 16:05:49
【问题描述】:

我目前正在开发一个小程序,该程序允许将项目排序和总成本存储在 JavaDB 中。

我已成功将整数值存储到数据库中,但项目的成本金额不正确。似乎选择复选框时,它将计算为位于设定值之上的值。谁能看看我哪里出错了?

任何帮助将不胜感激!

截图:

http://i.imgur.com/ad41ooG.png

【问题讨论】:

  • 这里有大量冗余代码,与您的问题无关。如果您将其减少到 minimal, complete and verifiable example,则更有可能获得有用的回复。
  • 好的,感谢您的提示,我现在将减少代码。我认为主要是 btnOrderActionPerformed(java.awt.event.ActionEvent evt) 中的代码是问题所在。再次感谢。
  • 我想没有人可以解决这个问题吗?过去几个小时我一直在研究这个问题,但根据商品价格,它仍然没有正确的总成本:S 谢谢!

标签: java


【解决方案1】:

好的 - 我想我可以看到你的问题。进一步减少代码,你有:

int fanta = 1;
int crisps = 1;
int beer = 2;
int wine = 3;
int water = 0;

...

if(btnFanta.isSelected()) fanta++;
if(btnCrisps.isSelected()) crisps++;
if(btnBeer.isSelected()) beer++;
if(btnWine.isSelected()) wine++;
if(btnWater.isSelected()) water++;

rs.updateInt("TotalCost", fanta + crisps + beer + wine + water);

因此,如果未选择任何内容,则将所有值相加:1 + 1 + 2 + 3 + 0 = 7,然后将其插入。如果选择 Fanta,您首先增加 fanta 的值,使其变为 2,然后将其添加到所有其他零食的值:2 + 1 + 2 + 3 + 0 = 8,这就是您在选择 Fanta 时在数据库中看到的内容。

希望这是有道理的,我猜这不是你想要的。我建议一种解决方案是添加一个新变量,例如totalCost,如果选中了相关复选框,则将值添加到 that,所以,你最终会得到一些东西喜欢:

int fanta = 1;
int crisps = 1;
...
int totalCost = 0;
...
if(btnFanta.isSelected()) totalCost += fanta;
if(btnCrisps.isSelected()) totalCost += crisps;
...
rs.updateInt("TotalCost", totalCost);

(如果您不熟悉+= 语法,这与说totalCost = totalCost + fanta 相同,即您将fanta 添加到之前的totalCost 中。)

【讨论】:

  • 非常感谢您提供这个答案。数据库现在存储所有项目的正确值,即使选择了多个项目。你不知道我在这个小问题上花了多少时间。另外,感谢您解释解决方案,这在很大程度上帮助我理解了为什么它一开始就不起作用。 +1
  • “你不知道我在这个小问题上花了多少时间” - 欢迎编程 :)
猜你喜欢
  • 1970-01-01
  • 2016-02-20
  • 1970-01-01
  • 2014-05-15
  • 2011-08-12
  • 1970-01-01
  • 2015-02-22
  • 2014-03-31
  • 1970-01-01
相关资源
最近更新 更多