Я работаю над java fxml, где я беру 2 входа и использую их для запуска скрипта.
Я делаю паузу в точках выполнения скрипта
Моя проблема в том, что когда я предоставляю только 1 вход (например, 1 2 добавляют 3 равных), код работает нормально
но когда я предоставляю 2 входа (например, 1 2 add и 3 равных), код останавливается на countDownLatch.await () на самом последнем шаге и не печатает вывод скрипта.
Я начинаю с нажатия кнопки fxml, как показано ниже
Executors.newSingleThreadExecutor().submit(()-> {
method(ui_inputs1);
method(ui_inputs2)
}):
Я пытаюсь добиться паузы в пользовательском интерфейсе FXML, то есть до тех пор, пока пользователь не нажмет на что-то вроде отладки, где пользователь выберет точки пользовательского интерфейса для паузы.
так как то так
public void onExcecute(
if (debugMode) {
//check is breakpoint the do Platform.runLater(() + UI updates//
countDownLatch.await();
countDownLatch = new CountDownLatch(1);
}
}
когда пользователь нажимает кнопку «Воспроизвести следующую», он переходит к следующему шагу, пока не достигнет точки исполнения
public void onHitBreakpoint() {
Platform.runLater(()->{
addStackDebug(listener,false);});
}
playToNextExecPoint() {
countDownLatch.countDown();
}
public void onfinish{
// script success or failed
}
Журнал консоли для правильного выполнения:
Давайте разберем 1 2 ДОБАВИТЬ 3 РАВНО
Выполнение операции OP_CODE: [1]
Давайте разберем 1 2 ДОБАВИТЬ 3 РАВНО
------- Нажмите «Play» для продолжения --------
Выполнение операции OP_CODE: [2]
Давайте разберем 2 ДОБАВИТЬ 3 РАВНО
------- Нажмите «Play» для продолжения --------
Выполнение операции OP_CODE: [ADD]
Давайте разберем ADD 3 EQUAL
------- Нажмите «Play» для продолжения --------
Выполнение операции OP_CODE: [3]
Давайте разберем 3 РАВНО
------- Нажмите «Play» для продолжения --------
Выполнение операции OP_CODE: [EQUAL]
Давайте разберем EQUAL
------- Нажмите «Play» для продолжения --------
Сценарий успеха.
Сценарий успешен.
Когда я предоставляю 2 ввода, отпечатки, выделенные жирным шрифтом и курсивом, отсутствуют