首页 > 解决方案 > 单击按钮时更新类变量

问题描述

如果我在更改文本字段的值后单击 GUI 上的“运行”按钮,变量将不会更新。

我有一堂课的按钮:

            public void actionPerformed(ActionEvent e) {
                
                RunSimulation r = new RunSimulation();
                System.out.println(Data.campusSize);
                System.out.println("Button clicked!");
            }
        });

在另一堂课中,我收集了所有数据:

public class Data { 
static int campusSize = Integer.valueOf(View.campusSizeTextField.getText()); 
}

在 RunSimulation 类中,访问 Data 中的类变量。如果我打印出 Data.campusSize,它总是会给出相同的值,即使我在 textField 中更改它也是如此。

标签: javaswingawt

解决方案


当前代码的问题在于,每次更改 UI 中的值时,您的 CampusSize 变量都不会更新。唯一一次调用该 UI 组件的 getter 是在初始化 int 时。

更改代码的简单方法:

public void actionPerformed(ActionEvent e) {                
  RunSimulation r = new RunSimulation();
  System.out.println(Data.getCampusSize());
  System.out.println("Button clicked!");
}

请注意,现在我调用的是方法,而不是已经实例化的变量。

public class Data { 
  public static int getCampusSize() {
    return Integer.valueOf(View.campusSizeTextField.getText());
  } 
}

这样,每次调用该方法时,您都会获得 textField 的更新值,因为您再次调用了 getter。


推荐阅读