From 38797e36fd60e608a47cec6d89580d59aed9dee5 Mon Sep 17 00:00:00 2001 From: gewuyou <1063891901@qq.com> Date: Sun, 10 Sep 2023 11:08:07 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E8=80=85=E8=B0=83=E8=AF=95=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jcnc/jnotepad/ui/dialog/AppDialog.java | 10 ++++++ .../ui/setstage/DeveloperDebugStage.java | 32 +++++++++++++---- .../jcnc/jnotepad/ui/setstage/SetStage.java | 36 +++++++++++++------ .../org/jcnc/jnotepad/util/PopUpUtil.java | 14 ++++++++ .../java/org/jcnc/jnotepad/util/UiUtil.java | 13 +++++-- 5 files changed, 87 insertions(+), 18 deletions(-) diff --git a/src/main/java/org/jcnc/jnotepad/ui/dialog/AppDialog.java b/src/main/java/org/jcnc/jnotepad/ui/dialog/AppDialog.java index a541f07..c7dfbd8 100644 --- a/src/main/java/org/jcnc/jnotepad/ui/dialog/AppDialog.java +++ b/src/main/java/org/jcnc/jnotepad/ui/dialog/AppDialog.java @@ -100,6 +100,10 @@ public class AppDialog extends Stage { * 错误 */ ERROR, + /** + * 成功 + */ + SUCCESS, /** * 疑问 */ @@ -178,6 +182,12 @@ public class AppDialog extends Stage { return setTitle("问题"). setIcon(UiUtil.getQuestionIcon()); } + case SUCCESS -> + // 设置默认的对话框配置 + { + return setTitle("成功"). + setIcon(UiUtil.getSuccessIcon()); + } default -> { return this; } diff --git a/src/main/java/org/jcnc/jnotepad/ui/setstage/DeveloperDebugStage.java b/src/main/java/org/jcnc/jnotepad/ui/setstage/DeveloperDebugStage.java index 57e958f..3fbad92 100644 --- a/src/main/java/org/jcnc/jnotepad/ui/setstage/DeveloperDebugStage.java +++ b/src/main/java/org/jcnc/jnotepad/ui/setstage/DeveloperDebugStage.java @@ -6,17 +6,21 @@ import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.layout.VBox; import javafx.stage.Stage; +import org.jcnc.jnotepad.util.LogUtil; import org.jcnc.jnotepad.util.PopUpUtil; +import org.jcnc.jnotepad.util.UiUtil; +import org.slf4j.Logger; /** * @author luke */ public class DeveloperDebugStage extends Stage { + Logger logger = LogUtil.getLogger(this.getClass()); public void start(Stage primaryStage) { // 创建主舞台 primaryStage.setTitle("开发者调试页面"); - + primaryStage.getIcons().add(UiUtil.getAppIcon()); // 创建一个垂直布局 VBox root = new VBox(); root.setPadding(new Insets(20)); @@ -25,27 +29,43 @@ public class DeveloperDebugStage extends Stage { // 添加一些调试功能按钮和标签 Label titleLabel = new Label("开发者调试页面"); Button debugButton1 = new Button("错误提示框"); - Button debugButton2 = new Button("调试功能2"); - Button debugButton3 = new Button("调试功能3"); + Button debugButton2 = new Button("信息提示框"); + Button debugButton3 = new Button("警告提示框"); + Button debugButton4 = new Button("疑问提示框"); + Button debugButton5 = new Button("成功提示框"); // 按钮点击事件处理 debugButton1.setOnAction(e -> { // 在这里执行调试功能1的代码 - System.out.println("开发者调试: " + debugButton1.getText() + " 启动!"); - PopUpUtil.errorAlert("错误", "读写错误", "配置文件读写错误!", null, null); + logger.debug("开发者调试: {}启动!", debugButton1.getText()); + PopUpUtil.errorAlert("错误", "错误", "这是一个示例错误提示框!", null, null); }); debugButton2.setOnAction(e -> { // 在这里执行调试功能2的代码 + logger.debug("开发者调试: {}启动!", debugButton2.getText()); + PopUpUtil.infoAlert("信息", "信息", "这是一个示例信息提示框!", null, null); }); debugButton3.setOnAction(e -> { // 在这里执行调试功能3的代码 + logger.debug("开发者调试: {}启动!", debugButton3.getText()); + PopUpUtil.warningAlert("警告", "警告", "这是一个示例警告提示框!", null, null); + }); + debugButton4.setOnAction(e -> { + // 在这里执行调试功能4的代码 + logger.debug("开发者调试: {}启动!", debugButton4.getText()); + PopUpUtil.questionAlert("疑问", "疑问", "这是一个示例疑问提示框!", null, null); + }); + debugButton5.setOnAction(e -> { + // 在这里执行调试功能5的代码 + logger.debug("开发者调试: {}启动!", debugButton5.getText()); + PopUpUtil.successAlert("成功", "成功", "这是一个示例成功提示框!", null, null); }); // 将组件添加到布局中 - root.getChildren().addAll(titleLabel, debugButton1, debugButton2, debugButton3); + root.getChildren().addAll(titleLabel, debugButton1, debugButton2, debugButton3, debugButton4, debugButton5); // 创建场景 Scene scene = new Scene(root, 400, 300); diff --git a/src/main/java/org/jcnc/jnotepad/ui/setstage/SetStage.java b/src/main/java/org/jcnc/jnotepad/ui/setstage/SetStage.java index 2c6b2df..206c816 100644 --- a/src/main/java/org/jcnc/jnotepad/ui/setstage/SetStage.java +++ b/src/main/java/org/jcnc/jnotepad/ui/setstage/SetStage.java @@ -33,6 +33,8 @@ public class SetStage extends Stage { public static final String APPEARANCE_SETTING_2 = "外观设置项2"; public static final String SECURITY_SETTING_1 = "安全设置项1"; public static final String SECURITY_SETTING_2 = "安全设置项2"; + + public static final String DEVELOPER_DEBUG_PAGE = "开发者调试页面"; private static SetStage instance; private StackPane contentDisplay; @@ -59,6 +61,7 @@ public class SetStage extends Stage { */ public void openSetStage() { Stage primaryStage = new Stage(); + primaryStage.getIcons().add(UiUtil.getAppIcon()); primaryStage.setTitle("设置窗口"); @@ -112,7 +115,7 @@ public class SetStage extends Stage { root.setExpanded(true); //常规设置树 - TreeItem generalItem = new TreeItem<>("常规设置"); + TreeItem generalItem = new TreeItem<>("常规"); TreeItem generalItem1 = new TreeItem<>("常规设置项1"); TreeItem generalItem2 = new TreeItem<>("常规设置项2"); @@ -121,7 +124,7 @@ public class SetStage extends Stage { //外观设置树 - TreeItem appearanceItem = new TreeItem<>("外观设置"); + TreeItem appearanceItem = new TreeItem<>("外观"); TreeItem appearanceItem1 = new TreeItem<>("外观设置项1"); TreeItem appearanceItem2 = new TreeItem<>("外观设置项2"); @@ -129,16 +132,21 @@ public class SetStage extends Stage { appearanceItem.getChildren().add(appearanceItem2); //安全设置树 - TreeItem securityItem = new TreeItem<>("安全设置"); + TreeItem securityItem = new TreeItem<>("安全"); TreeItem securityItem1 = new TreeItem<>("安全设置项1"); TreeItem securityItem2 = new TreeItem<>("安全设置项2"); securityItem.getChildren().add(securityItem1); securityItem.getChildren().add(securityItem2); + // 开发者调试页面 + TreeItem developerItem = new TreeItem<>(DEVELOPER_DEBUG_PAGE); + + root.getChildren().add(generalItem); root.getChildren().add(appearanceItem); root.getChildren().add(securityItem); + root.getChildren().add(developerItem); TreeView treeView = new TreeView<>(root); treeView.setShowRoot(false); @@ -161,20 +169,16 @@ public class SetStage extends Stage { case APPEARANCE_SETTING_2 -> createAppearanceSettingsLayout2(); case SECURITY_SETTING_1 -> createSecuritySettingsLayout1(); case SECURITY_SETTING_2 -> createSecuritySettingsLayout2(); + case DEVELOPER_DEBUG_PAGE -> createDevelopersDebugPageLayouts(); default -> null; }; } - /** - * 创建常规设置项1的布局。 - * - * @return 常规设置项1的布局节点 - */ - private Node createGeneralSettingsLayout1() { + private Node createDevelopersDebugPageLayouts() { VBox generalLayout = new VBox(10); generalLayout.setPadding(new Insets(25)); - SettingsComponent devBox = new SettingsComponent("打开开发者调试页面","开发者调试页面"); + SettingsComponent devBox = new SettingsComponent("打开开发者调试页面", DEVELOPER_DEBUG_PAGE); devBox.setButtonAction(event -> { // 创建并启动DeveloperDebugPage DeveloperDebugStage debugPage = new DeveloperDebugStage(); @@ -187,6 +191,18 @@ public class SetStage extends Stage { return generalLayout; } + /** + * 创建常规设置项1的布局。 + * + * @return 常规设置项1的布局节点 + */ + private Node createGeneralSettingsLayout1() { + VBox generalLayout = new VBox(); + generalLayout.getChildren().add(new Label("常规设置项1的布局")); + + return generalLayout; + } + /** * 创建常规设置项2的布局。 diff --git a/src/main/java/org/jcnc/jnotepad/util/PopUpUtil.java b/src/main/java/org/jcnc/jnotepad/util/PopUpUtil.java index 086c6b6..a3df941 100644 --- a/src/main/java/org/jcnc/jnotepad/util/PopUpUtil.java +++ b/src/main/java/org/jcnc/jnotepad/util/PopUpUtil.java @@ -108,6 +108,20 @@ public class PopUpUtil { .build().showAndWait(); } + public static void successAlert( + String title, String headerText, String message, + AppDialog.ButtonAction leftBtnAction, AppDialog.ButtonAction rightBtnAction) { + getCustomDialog() + .setDialogType(AppDialog.DialogType.SUCCESS) + .setTitle(title) + .setHeaderText(headerText) + .setCustomText(message) + .setLeftBtnAction(leftBtnAction) + .setRightBtnAction(rightBtnAction) + .build().showAndWait(); + + } + /** * 获取自定义弹窗 * diff --git a/src/main/java/org/jcnc/jnotepad/util/UiUtil.java b/src/main/java/org/jcnc/jnotepad/util/UiUtil.java index 2c7f85f..d19778c 100644 --- a/src/main/java/org/jcnc/jnotepad/util/UiUtil.java +++ b/src/main/java/org/jcnc/jnotepad/util/UiUtil.java @@ -42,7 +42,7 @@ public class UiUtil { */ private static final FontIcon QUESTION_ICON = FontIcon.of(QUESTION_CIRCLE); - private static final FontIcon SUCCEED_ICON = FontIcon.of(CHECK_CIRCLE); + private static final FontIcon SUCCESS_ICON = FontIcon.of(CHECK_CIRCLE); private UiUtil() { } @@ -53,7 +53,7 @@ public class UiUtil { INFO_ICON.getStyleClass().addAll(Styles.ACCENT); QUESTION_ICON.getStyleClass().addAll(Styles.ACCENT); WARNING_ICON.getStyleClass().addAll(Styles.WARNING); - SUCCEED_ICON.getStyleClass().addAll(Styles.SUCCESS); + SUCCESS_ICON.getStyleClass().addAll(Styles.SUCCESS); } /** @@ -102,6 +102,15 @@ public class UiUtil { return QUESTION_ICON; } + /** + * Retrieves the success icon. + * + * @return the success icon as a FontIcon object + */ + public static FontIcon getSuccessIcon() { + return SUCCESS_ICON; + } + /** * 获取应用窗口。 *