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 cc89af04180ff5782d1808429f6756cccc144852..8eab1edf929ae948eff5ed1c5f28cae59fc4f521 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 077290b810665040690e5cc337a325ad702abe7f..a2a417179f8b26a236a20fae71bf0378de386136 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 4426af2f0b33b64f4c8f35451d7150d34a030d71..e232e804c7516ec665e8b9cb3c22ad001c56ea4b 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; + } } } +