From 80712f59d74b22e94334bc99f6528f38a7faf7c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E8=BD=B2?= Date: Thu, 5 Oct 2023 19:23:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4setStage=E7=9A=84=E6=A8=A1?= =?UTF-8?q?=E6=80=81.=E6=8D=A2=E4=B8=80=E7=A7=8D=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../component/stage/setting/DeveloperDebugStage.java | 1 + .../jnotepad/component/stage/setting/SetStage.java | 4 ++-- .../controller/event/handler/setting/SetBtn.java | 11 ++++++++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/jcnc/jnotepad/component/stage/setting/DeveloperDebugStage.java b/src/main/java/org/jcnc/jnotepad/component/stage/setting/DeveloperDebugStage.java index cc89af0..8eab1ed 100644 --- a/src/main/java/org/jcnc/jnotepad/component/stage/setting/DeveloperDebugStage.java +++ b/src/main/java/org/jcnc/jnotepad/component/stage/setting/DeveloperDebugStage.java @@ -20,6 +20,7 @@ public class DeveloperDebugStage extends Stage { Logger logger = LogUtil.getLogger(this.getClass()); public void start(Stage primaryStage) { + this.setAlwaysOnTop(true); // 创建主舞台 primaryStage.setTitle("开发者调试页面"); primaryStage.getIcons().add(UiUtil.getAppIcon()); diff --git a/src/main/java/org/jcnc/jnotepad/component/stage/setting/SetStage.java b/src/main/java/org/jcnc/jnotepad/component/stage/setting/SetStage.java index 077290b..a2a4171 100644 --- a/src/main/java/org/jcnc/jnotepad/component/stage/setting/SetStage.java +++ b/src/main/java/org/jcnc/jnotepad/component/stage/setting/SetStage.java @@ -14,7 +14,6 @@ import javafx.scene.layout.VBox; import javafx.scene.paint.Color; import javafx.scene.text.Font; import javafx.scene.text.Text; -import javafx.stage.Modality; import javafx.stage.Stage; import org.jcnc.jnotepad.app.config.AppConfig; import org.jcnc.jnotepad.app.i18n.UiResourceBundle; @@ -83,7 +82,7 @@ public class SetStage extends Stage { primaryStage.getIcons().add(UiUtil.getAppIcon()); primaryStage.setTitle("设置窗口"); // 将窗口设置为模态 - primaryStage.initModality(Modality.APPLICATION_MODAL); + //primaryStage.initModality(Modality.APPLICATION_MODAL); contentDisplay = new StackPane(); @@ -215,6 +214,7 @@ public class SetStage extends Stage { devBox.setButtonAction(event -> { // 创建并启动DeveloperDebugPage DeveloperDebugStage debugPage = new DeveloperDebugStage(); + debugPage.setAlwaysOnTop (true); debugPage.start(new Stage()); }); generalLayout.getChildren().addAll(devBox); diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/setting/SetBtn.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/setting/SetBtn.java index 4426af2..e232e80 100644 --- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/setting/SetBtn.java +++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/setting/SetBtn.java @@ -12,6 +12,10 @@ import org.jcnc.jnotepad.component.stage.setting.SetStage; * @author 许轲 */ public class SetBtn implements EventHandler { + /** + * 标志变量,跟踪Stage是否已创建 + */ + private boolean isStageCreated = false; /** * 打开设置窗口处理事件。 @@ -20,6 +24,11 @@ public class SetBtn implements EventHandler { */ @Override public void handle(ActionEvent event) { - SetStage.getInstance().openSetStage(); + if (!isStageCreated) { + SetStage.getInstance().openSetStage(); + // 设置标志变量为true,表示Stage已创建 + isStageCreated = true; + } } } +