从Java中的方法增加类变量

时间:2018-04-03 16:51:35

标签: java

我正在开发一个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"是小写的,它是我的进度条的名称

4 个答案:

答案 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;