java - 单击按钮时更新类变量
问题描述
如果我在更改文本字段的值后单击 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 中更改它也是如此。
解决方案
当前代码的问题在于,每次更改 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。
推荐阅读
- asp.net-core - 如何使用 Blazor 语法折叠/展开 Razor 组件?
- python - 无法将我的 Python 脚本与 Linux 所需的所有模块和依赖项完全打包
- c# - 进程找不到指定的文件
- angular - Import typescript file to an angular typescript file
- python - FileNotFoundError: [WinError 3] 训练图像时系统找不到指定的路径
- java - 使用标准 API 删除?
- outlook-addin - Office.context.mailbox.getCallbackTokenAsync() 空令牌
- java - 我在世袭班的方法上有问题
- javascript - Javascript 文件加载回退。替代 document.write()
- ios - iOS 中 React Native 组件的映射