单击按钮时更新 class 个变量
Update class variables on button click
如果我在更改文本字段的值后单击 GUI 上的“运行”按钮,变量将不会更新。
我把按钮合二为一class:
public void actionPerformed(ActionEvent e) {
RunSimulation r = new RunSimulation();
System.out.println(Data.campusSize);
System.out.println("Button clicked!");
}
});
在另一个 class 中,我收集了所有数据:
public class Data {
static int campusSize = Integer.valueOf(View.campusSizeTextField.getText());
}
在运行模拟class中,访问数据中的class变量。如果我打印出 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。
如果我在更改文本字段的值后单击 GUI 上的“运行”按钮,变量将不会更新。
我把按钮合二为一class:
public void actionPerformed(ActionEvent e) {
RunSimulation r = new RunSimulation();
System.out.println(Data.campusSize);
System.out.println("Button clicked!");
}
});
在另一个 class 中,我收集了所有数据:
public class Data {
static int campusSize = Integer.valueOf(View.campusSizeTextField.getText());
}
在运行模拟class中,访问数据中的class变量。如果我打印出 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。