From fbc3ef0f70dceaac9ef30c5e799083f942cd669b Mon Sep 17 00:00:00 2001 From: LucaaMueller Date: Mon, 6 May 2024 16:42:25 +0200 Subject: [PATCH] Stop Button --- .../pic16f84/Controller_Frontend.java | 31 ++++++++++++++----- .../java/fabrik/simulator/pic16f84/styles.css | 3 +- .../fabrik/simulator/pic16f84/frontend.fxml | 1 + 3 files changed, 26 insertions(+), 9 deletions(-) diff --git a/src/main/java/fabrik/simulator/pic16f84/Controller_Frontend.java b/src/main/java/fabrik/simulator/pic16f84/Controller_Frontend.java index 186c949..9975190 100644 --- a/src/main/java/fabrik/simulator/pic16f84/Controller_Frontend.java +++ b/src/main/java/fabrik/simulator/pic16f84/Controller_Frontend.java @@ -62,28 +62,39 @@ public class Controller_Frontend { @FXML private Label intconLabel; - - - - @FXML private Button stepButton; - - @FXML private Button autoRunGUI; + @FXML + private Button stopButton; + private volatile boolean isAutoRunActive = true; + + + + @FXML + private void stopAutoRun(ActionEvent event) { + + isAutoRunActive = false; + } + + + @FXML private void autoRunGUI(ActionEvent event) { + if (!isAutoRunActive) { + isAutoRunActive = true; + } Thread autoRunThread = new Thread(() -> { try { - while (DataRegister.getPC() < prog.length) { + while (DataRegister.getPC() < prog.length && isAutoRunActive){ Platform.runLater(() -> { try { @@ -92,7 +103,7 @@ public class Controller_Frontend { e.printStackTrace(); } }); - Thread.sleep(200); // Millisekunden + Thread.sleep(200); //Verzögerungszeit in Millisekunden } } catch (InterruptedException e) { e.printStackTrace(); @@ -100,9 +111,12 @@ public class Controller_Frontend { }); autoRunThread.setDaemon(true); autoRunThread.start(); + } + + @FXML private void stepintoButton(ActionEvent event) throws IOException { if (lstContentListView.getItems().isEmpty()) { @@ -295,6 +309,7 @@ public class Controller_Frontend { lstContentListView.getStylesheets().add(Objects.requireNonNull(getClass().getResource("styles.css")).toExternalForm()); autoRunGUI.setOnAction(this::autoRunGUI); + stopButton.setOnAction(this::stopAutoRun); } private static void setTRISbuttons(ToggleButtonGroup[] allButtons) { diff --git a/src/main/java/fabrik/simulator/pic16f84/styles.css b/src/main/java/fabrik/simulator/pic16f84/styles.css index b49b6c8..e4d1fcd 100644 --- a/src/main/java/fabrik/simulator/pic16f84/styles.css +++ b/src/main/java/fabrik/simulator/pic16f84/styles.css @@ -1,4 +1,5 @@ .list-cell:selected { -fx-background-color: yellow; -} \ No newline at end of file +} + diff --git a/src/main/resources/fabrik/simulator/pic16f84/frontend.fxml b/src/main/resources/fabrik/simulator/pic16f84/frontend.fxml index 1a0ea2c..8842ca4 100644 --- a/src/main/resources/fabrik/simulator/pic16f84/frontend.fxml +++ b/src/main/resources/fabrik/simulator/pic16f84/frontend.fxml @@ -28,6 +28,7 @@