单击按钮时更新 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。