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

我已经成功地将整数值存储到数据库中,但是项目的成本金额不正确。似乎当选中该复选框时,它会将其作为设置值之上的值进行计数。谁能看一看我出了什么问题?

任何帮助将不胜感激!

屏幕截图:

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

最佳答案

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

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,并在选中了相关复选框的情况下向其中添加值,因此,最终会得到类似以下内容:

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中。)

10-04 10:59