我正在开发一个Java项目,我陷入了这个简单的类。 基本上,我试着打电话给"添加"来自另一个类的方法,然后使用递增的" WaterAmount"整数作为JProgressBar值。现在我的问题是:
每次我打电话给#34;添加"方法," WaterAmount"整数保持为0,进度条的值为0。 但是,如果我设置" WaterAmount"手动,它的工作原理。 那么我在这里错过了什么,为什么没有"添加"方法增加" WaterAmount"整数??这是我的代码:
public class Water {
int WaterAmount;
public void add(int amountA) {
WaterAmount = WaterAmount + amountA;
}
public void remove(int amountR) {
WaterAmount = WaterAmount - amountR;
}
}
拨打"添加"我使用的方法:
Water water = new Water();
water.add(10);
阅读" WaterAmount"我使用的其他类中的值:
public void updateDisplay() {
waterAmount.setValue(water.WaterAmount);
}
public static void main(String[] args) {
Main system = new Main();
system.updateDisplay();
}
" waterAmount"是小写的,它是我的进度条的名称
答案 0 :(得分:0)
运行这个简单的测试并理解参考变量在java中的工作方式
public class Water {
int WaterAmount;
public int getWaterAmount() {
return WaterAmount;
}
public void setWaterAmount(int waterAmount) {
WaterAmount = waterAmount;
}
public void add(int amountA) {
WaterAmount = WaterAmount + amountA;
}
public void remove(int amountR) {
WaterAmount = WaterAmount - amountR;
}
}
创建一个测试类
public class Test {
public static void main(String[] args) {
Water wat = new Water();
wat.add(10);
System.out.println( wat.getWaterAmount());
}
}
输出 10
答案 1 :(得分:0)
你的问题不在于Water类,而在于你将Water.WaterAmount与ProgressBar相关联的方式。您假设ProgressBar正在监视WaterAmount值的变化(例如,ProgressBar值绑定到WaterAmount值),但事实并非如此。每次调用add()时,WaterAmount的值肯定会增加,但progressBar的值不会改变。
平凡的是,每次waterAmount的值发生变化时,都需要调用progressBar.setValue()。如何最好地做到这一点取决于你没有向我们展示的信息(什么叫做water.add(10)以及你使用的是什么线程)
答案 2 :(得分:0)
问题解决了,我忘了放置" system.updateDisplay()"在循环内。 谢谢你的帮助。
答案 3 :(得分:-1)
使用'this'..试试这个.w = this.w + amount;