В настоящее время у меня есть графический интерфейс, в котором есть параметры, позволяющие пользователю выбрать способ запуска программы:
//Inside GUI.java, start button has clicked -> send all objects to Main class
private void startButtonClicked(MouseEvent e) {
Main.setMain(selectedObj.getItemAt(selectedObj.getSelectedIndex()));
Main.setOwnCar(userName.getText().trim());
Main.enableNaps(weSleep.isSelected());
Main.useOwnHouse(useOwnHouse.isSelected());
if (weSleep.isSelected()) {
Integer minSleep = (Integer) minVal.getValue();
Integer maxSleep = (Integer) maxVal.getValue();
Main.setSleepMinMax(minSleep, maxSleep);
}
setVisible(false);
}
Когда нажата кнопка запуска, я хочу передать все переменные из графического интерфейса восновной класс.Единственный способ, которым я знал, как это сделать, это использовать методы получения / установки, но они должны быть статическими:
static void setSleepMinMax(int min, int max) {
sleepMin = min;
sleepMax = max;
Log("Sleeping debug: [min->" + min + "] [max->" + max + "]");
}
//Inside an infinite loop I have this which is at the top
//until the GUI is closed it does not start the rest of the program
if (gui.isVisible()) {
Log("Waiting for GUI vars");
return 1000;
}
if (!getOwnCar.isEmpty())
Log("Using " + ownerCarName);
Большинство говорят, что избегают статических переменных.Как правильно, если я не могу использовать конструктор, потому что мой основной класс всегда работает, а GUI - это просто окно, которое можно открыть для изменения переменных по требованию?Возможно, перейдите по ссылке, аналогичной C ++?