Я очень хорошо знаю, что об этом спрашивали бесчисленное количество раз прежде, но я, кажется, не могу понять это. Вся программа сосредоточена на форексе и использует живые данные, поэтому она должна обновляться каждые 20 секунд или около того.
Я создал пользовательский интерфейс, который имеет 2 страницы. На первой странице есть кнопка «Следующая страница», которая, очевидно, переходит на страницу 2 (именно туда идут текущие данные). Я сделал отдельный класс (TestController) с параметром для l oop, который спит в течение 20 секунд, для тестирования итерация просто установлена в единицу.)
public class testController {
// Sleep for 20 seconds
static void sleep() throws InterruptedException {
for (int i = 0; i < 1; i++) {
Thread.sleep(20000);
}
testModel.theModel();
testView.createSecondPage(null);
Это вызывается из моего класса TestView, упрощенно до этого:
public class testView extends Application {
Button button;
public testView() {}
public static void launchApplication(String[]args) {
launch(args);
}
@Override
public void start(Stage stage) throws Exception {
button = new Button();
button.setText("Next Page");
…
Scene scene = new Scene(grid, 1075, 700);
stage.setScene(scene);
stage.show();
// change code here
button.setOnAction(e -> {
try {
createSecondPage(stage);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
});
}
}
и это:
public static void createSecondPage(Stage stage) throws InterruptedException {
testController.sleep();
}
Я удалил весь контент, который будет отображаться в пользовательском интерфейсе, так как его много, и он не имеет отношения к вопрос. И вот в чем вопрос: мне нужно приостановить / остановить / удерживать первую страницу, пока не будет нажата кнопка «следующая страница». Код, который я сейчас плохо написал, позволяет мне щелкнуть только после завершения первой итерации. Поэтому мне нужно что-то, что говорит: «как только первая страница отобразится, подождите, пока пользователь не нажмет следующую кнопку, затем отобразите вторую страницу и запустите ветку сна». Я посмотрел на wait (), notify (), но не могу понять; какое-то время l oop считается плохим кодом, и оператор if не помогает, поскольку я все равно не знаю, как заставить программу приостановить работу.
Это может быть просто, но не для меня. Заранее спасибо.