From 3bd945a2e6a2e8c9e5135ef0e82dacd543dd46b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E8=BD=B2?= Date: Thu, 31 Aug 2023 01:42:05 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E9=87=8D=E6=9E=84ui=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/module-info.java | 5 +--- .../event/handler/menuBar/NewFile.java | 2 +- .../event/handler/menuBar/OpenFile.java | 2 +- .../event/handler/menuBar/RenameFile.java | 2 +- .../event/handler/menuBar/SaveFile.java | 2 +- .../jcnc/jnotepad/root/RootBorderPane.java | 23 +++++++++++++++ .../root/center/main/MainBorderPane.java | 29 +++++++++++++++++++ .../bottom/status/JNotepadStatusBox.java | 6 ++-- .../center/main}/center/tab/JNotepadTab.java | 2 +- .../main}/center/tab/JNotepadTabPane.java | 2 +- .../center/main}/top/RootTopVBox.java | 6 ++-- .../main}/top/menu/JNotepadMenuBar.java | 8 ++--- .../main}/top/tools/JNotepadToolBar.java | 2 +- .../center/main}/top/tools/ToolHBox.java | 2 +- .../java/org/jcnc/jnotepad/tool/UiUtil.java | 8 ++--- .../ui/module/LineNumberTextArea.java | 2 +- .../jnotepad/view/manager/ViewManager.java | 15 +++++----- 17 files changed, 83 insertions(+), 35 deletions(-) create mode 100644 src/main/java/org/jcnc/jnotepad/root/RootBorderPane.java create mode 100644 src/main/java/org/jcnc/jnotepad/root/center/main/MainBorderPane.java rename src/main/java/org/jcnc/jnotepad/{ui/root => root/center/main}/bottom/status/JNotepadStatusBox.java (96%) rename src/main/java/org/jcnc/jnotepad/{ui/root => root/center/main}/center/tab/JNotepadTab.java (97%) rename src/main/java/org/jcnc/jnotepad/{ui/root => root/center/main}/center/tab/JNotepadTabPane.java (97%) rename src/main/java/org/jcnc/jnotepad/{ui/root => root/center/main}/top/RootTopVBox.java (69%) rename src/main/java/org/jcnc/jnotepad/{ui/root => root/center/main}/top/menu/JNotepadMenuBar.java (97%) rename src/main/java/org/jcnc/jnotepad/{ui/root => root/center/main}/top/tools/JNotepadToolBar.java (94%) rename src/main/java/org/jcnc/jnotepad/{ui/root => root/center/main}/top/tools/ToolHBox.java (89%) diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index b867622..b3b2fc4 100644 --- a/src/main/java/module-info.java +++ b/src/main/java/module-info.java @@ -23,13 +23,10 @@ module org.jcnc.jnotepad { exports org.jcnc.jnotepad.controller.event.handler.menuBar; exports org.jcnc.jnotepad.tool; exports org.jcnc.jnotepad.Interface; - exports org.jcnc.jnotepad.ui.root.center.tab; - exports org.jcnc.jnotepad.ui.root.bottom.status; - exports org.jcnc.jnotepad.ui.root.top.menu; exports org.jcnc.jnotepad.ui.module; exports org.jcnc.jnotepad.ui.setStage; - exports org.jcnc.jnotepad.ui.root.top.tools; exports org.jcnc.jnotepad.view.manager; opens org.jcnc.jnotepad.app.config; + exports org.jcnc.jnotepad.root.center.main.bottom.status; } \ No newline at end of file diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/NewFile.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/NewFile.java index 7506996..a81cbc5 100644 --- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/NewFile.java +++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/NewFile.java @@ -4,9 +4,9 @@ import javafx.event.ActionEvent; import javafx.event.EventHandler; import org.jcnc.jnotepad.app.i18n.UiResourceBundle; import org.jcnc.jnotepad.constants.TextConstants; +import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTab; import org.jcnc.jnotepad.tool.UiUtil; import org.jcnc.jnotepad.ui.module.LineNumberTextArea; -import org.jcnc.jnotepad.ui.root.center.tab.JNotepadTab; import org.jcnc.jnotepad.view.manager.ViewManager; diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/OpenFile.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/OpenFile.java index 61d75db..46655ab 100644 --- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/OpenFile.java +++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/OpenFile.java @@ -6,11 +6,11 @@ import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.stage.FileChooser; import org.jcnc.jnotepad.manager.ThreadPoolManager; +import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTab; import org.jcnc.jnotepad.tool.EncodingDetector; import org.jcnc.jnotepad.tool.LogUtil; import org.jcnc.jnotepad.tool.UiUtil; import org.jcnc.jnotepad.ui.module.LineNumberTextArea; -import org.jcnc.jnotepad.ui.root.center.tab.JNotepadTab; import java.io.BufferedReader; import java.io.File; diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/RenameFile.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/RenameFile.java index 40fd251..cc6dea8 100644 --- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/RenameFile.java +++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/RenameFile.java @@ -5,9 +5,9 @@ import javafx.event.EventHandler; import javafx.scene.control.TextField; import javafx.scene.input.KeyCode; import javafx.stage.FileChooser; +import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTab; import org.jcnc.jnotepad.tool.LogUtil; import org.jcnc.jnotepad.tool.UiUtil; -import org.jcnc.jnotepad.ui.root.center.tab.JNotepadTab; import org.slf4j.Logger; import java.io.File; diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/SaveFile.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/SaveFile.java index f33022f..fe9979e 100644 --- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/SaveFile.java +++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/SaveFile.java @@ -4,10 +4,10 @@ import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.stage.FileChooser; import org.jcnc.jnotepad.controller.i18n.LocalizationController; +import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTab; import org.jcnc.jnotepad.tool.LogUtil; import org.jcnc.jnotepad.tool.SingletonUtil; import org.jcnc.jnotepad.tool.UiUtil; -import org.jcnc.jnotepad.ui.root.center.tab.JNotepadTab; import org.slf4j.Logger; import java.io.File; diff --git a/src/main/java/org/jcnc/jnotepad/root/RootBorderPane.java b/src/main/java/org/jcnc/jnotepad/root/RootBorderPane.java new file mode 100644 index 0000000..bdd939e --- /dev/null +++ b/src/main/java/org/jcnc/jnotepad/root/RootBorderPane.java @@ -0,0 +1,23 @@ +package org.jcnc.jnotepad.root; + +import org.jcnc.jnotepad.root.center.main.MainBorderPane; +import org.jcnc.jnotepad.ui.module.AbstractBorderPane; + +public class RootBorderPane extends AbstractBorderPane { + + private static final RootBorderPane INSTANCE = new RootBorderPane(); + + private RootBorderPane() { + initRootBorderPane(); + } + + private void initRootBorderPane() { + setCenterComponent(MainBorderPane.getInstance()); + } + + public static RootBorderPane getInstance() { + return INSTANCE; + } +} + + diff --git a/src/main/java/org/jcnc/jnotepad/root/center/main/MainBorderPane.java b/src/main/java/org/jcnc/jnotepad/root/center/main/MainBorderPane.java new file mode 100644 index 0000000..3971112 --- /dev/null +++ b/src/main/java/org/jcnc/jnotepad/root/center/main/MainBorderPane.java @@ -0,0 +1,29 @@ +package org.jcnc.jnotepad.root.center.main; + +import org.jcnc.jnotepad.root.center.main.bottom.status.JNotepadStatusBox; +import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTabPane; +import org.jcnc.jnotepad.root.center.main.top.RootTopVBox; +import org.jcnc.jnotepad.ui.module.AbstractBorderPane; + +public class MainBorderPane extends AbstractBorderPane { + + private static final MainBorderPane INSTANCE = new MainBorderPane(); + + private MainBorderPane() { + initRootBorderPane(); + } + + private void initRootBorderPane() { + this.setBottomComponent(JNotepadStatusBox.getInstance()); + + this.setCenter(JNotepadTabPane.getInstance()); + + this.setTopComponent(RootTopVBox.getInstance()); + } + + public static MainBorderPane getInstance() { + return INSTANCE; + } +} + + diff --git a/src/main/java/org/jcnc/jnotepad/ui/root/bottom/status/JNotepadStatusBox.java b/src/main/java/org/jcnc/jnotepad/root/center/main/bottom/status/JNotepadStatusBox.java similarity index 96% rename from src/main/java/org/jcnc/jnotepad/ui/root/bottom/status/JNotepadStatusBox.java rename to src/main/java/org/jcnc/jnotepad/root/center/main/bottom/status/JNotepadStatusBox.java index 6aa2502..4e0c708 100644 --- a/src/main/java/org/jcnc/jnotepad/ui/root/bottom/status/JNotepadStatusBox.java +++ b/src/main/java/org/jcnc/jnotepad/root/center/main/bottom/status/JNotepadStatusBox.java @@ -1,13 +1,13 @@ -package org.jcnc.jnotepad.ui.root.bottom.status; +package org.jcnc.jnotepad.root.center.main.bottom.status; import javafx.geometry.Insets; import javafx.scene.control.Label; import javafx.scene.control.TextArea; import org.jcnc.jnotepad.app.i18n.UiResourceBundle; import org.jcnc.jnotepad.constants.TextConstants; +import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTab; +import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTabPane; import org.jcnc.jnotepad.ui.module.AbstractHBox; -import org.jcnc.jnotepad.ui.root.center.tab.JNotepadTab; -import org.jcnc.jnotepad.ui.root.center.tab.JNotepadTabPane; import java.nio.charset.Charset; diff --git a/src/main/java/org/jcnc/jnotepad/ui/root/center/tab/JNotepadTab.java b/src/main/java/org/jcnc/jnotepad/root/center/main/center/tab/JNotepadTab.java similarity index 97% rename from src/main/java/org/jcnc/jnotepad/ui/root/center/tab/JNotepadTab.java rename to src/main/java/org/jcnc/jnotepad/root/center/main/center/tab/JNotepadTab.java index 700be3a..14dee97 100644 --- a/src/main/java/org/jcnc/jnotepad/ui/root/center/tab/JNotepadTab.java +++ b/src/main/java/org/jcnc/jnotepad/root/center/main/center/tab/JNotepadTab.java @@ -1,4 +1,4 @@ -package org.jcnc.jnotepad.ui.root.center.tab; +package org.jcnc.jnotepad.root.center.main.center.tab; import javafx.scene.control.Tab; import org.jcnc.jnotepad.controller.config.AppConfigController; diff --git a/src/main/java/org/jcnc/jnotepad/ui/root/center/tab/JNotepadTabPane.java b/src/main/java/org/jcnc/jnotepad/root/center/main/center/tab/JNotepadTabPane.java similarity index 97% rename from src/main/java/org/jcnc/jnotepad/ui/root/center/tab/JNotepadTabPane.java rename to src/main/java/org/jcnc/jnotepad/root/center/main/center/tab/JNotepadTabPane.java index dcd1398..40c096b 100644 --- a/src/main/java/org/jcnc/jnotepad/ui/root/center/tab/JNotepadTabPane.java +++ b/src/main/java/org/jcnc/jnotepad/root/center/main/center/tab/JNotepadTabPane.java @@ -1,4 +1,4 @@ -package org.jcnc.jnotepad.ui.root.center.tab; +package org.jcnc.jnotepad.root.center.main.center.tab; import javafx.scene.control.TabPane; import org.jcnc.jnotepad.controller.config.AppConfigController; diff --git a/src/main/java/org/jcnc/jnotepad/ui/root/top/RootTopVBox.java b/src/main/java/org/jcnc/jnotepad/root/center/main/top/RootTopVBox.java similarity index 69% rename from src/main/java/org/jcnc/jnotepad/ui/root/top/RootTopVBox.java rename to src/main/java/org/jcnc/jnotepad/root/center/main/top/RootTopVBox.java index bae5279..a4b01ed 100644 --- a/src/main/java/org/jcnc/jnotepad/ui/root/top/RootTopVBox.java +++ b/src/main/java/org/jcnc/jnotepad/root/center/main/top/RootTopVBox.java @@ -1,8 +1,8 @@ -package org.jcnc.jnotepad.ui.root.top; +package org.jcnc.jnotepad.root.center.main.top; import javafx.scene.layout.VBox; -import org.jcnc.jnotepad.ui.root.top.menu.JNotepadMenuBar; -import org.jcnc.jnotepad.ui.root.top.tools.ToolHBox; +import org.jcnc.jnotepad.root.center.main.top.menu.JNotepadMenuBar; +import org.jcnc.jnotepad.root.center.main.top.tools.ToolHBox; public class RootTopVBox extends VBox { private static final RootTopVBox INSTANCE = new RootTopVBox(); diff --git a/src/main/java/org/jcnc/jnotepad/ui/root/top/menu/JNotepadMenuBar.java b/src/main/java/org/jcnc/jnotepad/root/center/main/top/menu/JNotepadMenuBar.java similarity index 97% rename from src/main/java/org/jcnc/jnotepad/ui/root/top/menu/JNotepadMenuBar.java rename to src/main/java/org/jcnc/jnotepad/root/center/main/top/menu/JNotepadMenuBar.java index 404639d..9b27637 100644 --- a/src/main/java/org/jcnc/jnotepad/ui/root/top/menu/JNotepadMenuBar.java +++ b/src/main/java/org/jcnc/jnotepad/root/center/main/top/menu/JNotepadMenuBar.java @@ -1,4 +1,4 @@ -package org.jcnc.jnotepad.ui.root.top.menu; +package org.jcnc.jnotepad.root.center.main.top.menu; import javafx.event.ActionEvent; import javafx.scene.control.*; @@ -10,10 +10,10 @@ import org.jcnc.jnotepad.controller.config.AppConfigController; import org.jcnc.jnotepad.controller.event.handler.menuBar.*; import org.jcnc.jnotepad.controller.event.handler.tool.SetBtn; import org.jcnc.jnotepad.controller.i18n.LocalizationController; +import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTab; +import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTabPane; +import org.jcnc.jnotepad.root.center.main.top.tools.JNotepadToolBar; import org.jcnc.jnotepad.tool.LogUtil; -import org.jcnc.jnotepad.ui.root.center.tab.JNotepadTab; -import org.jcnc.jnotepad.ui.root.center.tab.JNotepadTabPane; -import org.jcnc.jnotepad.ui.root.top.tools.JNotepadToolBar; import org.slf4j.Logger; import java.util.*; diff --git a/src/main/java/org/jcnc/jnotepad/ui/root/top/tools/JNotepadToolBar.java b/src/main/java/org/jcnc/jnotepad/root/center/main/top/tools/JNotepadToolBar.java similarity index 94% rename from src/main/java/org/jcnc/jnotepad/ui/root/top/tools/JNotepadToolBar.java rename to src/main/java/org/jcnc/jnotepad/root/center/main/top/tools/JNotepadToolBar.java index e84d498..1f63cab 100644 --- a/src/main/java/org/jcnc/jnotepad/ui/root/top/tools/JNotepadToolBar.java +++ b/src/main/java/org/jcnc/jnotepad/root/center/main/top/tools/JNotepadToolBar.java @@ -1,4 +1,4 @@ -package org.jcnc.jnotepad.ui.root.top.tools; +package org.jcnc.jnotepad.root.center.main.top.tools; import javafx.scene.control.Button; import javafx.scene.control.ToolBar; diff --git a/src/main/java/org/jcnc/jnotepad/ui/root/top/tools/ToolHBox.java b/src/main/java/org/jcnc/jnotepad/root/center/main/top/tools/ToolHBox.java similarity index 89% rename from src/main/java/org/jcnc/jnotepad/ui/root/top/tools/ToolHBox.java rename to src/main/java/org/jcnc/jnotepad/root/center/main/top/tools/ToolHBox.java index 6a6c238..364d959 100644 --- a/src/main/java/org/jcnc/jnotepad/ui/root/top/tools/ToolHBox.java +++ b/src/main/java/org/jcnc/jnotepad/root/center/main/top/tools/ToolHBox.java @@ -1,4 +1,4 @@ -package org.jcnc.jnotepad.ui.root.top.tools; +package org.jcnc.jnotepad.root.center.main.top.tools; import javafx.scene.layout.HBox; import javafx.scene.layout.Priority; diff --git a/src/main/java/org/jcnc/jnotepad/tool/UiUtil.java b/src/main/java/org/jcnc/jnotepad/tool/UiUtil.java index 5bffe22..fef4518 100644 --- a/src/main/java/org/jcnc/jnotepad/tool/UiUtil.java +++ b/src/main/java/org/jcnc/jnotepad/tool/UiUtil.java @@ -3,10 +3,10 @@ package org.jcnc.jnotepad.tool; import javafx.scene.image.Image; import javafx.stage.Window; import org.jcnc.jnotepad.constants.AppConstants; -import org.jcnc.jnotepad.ui.root.bottom.status.JNotepadStatusBox; -import org.jcnc.jnotepad.ui.root.center.tab.JNotepadTab; -import org.jcnc.jnotepad.ui.root.center.tab.JNotepadTabPane; -import org.jcnc.jnotepad.ui.root.top.menu.JNotepadMenuBar; +import org.jcnc.jnotepad.root.center.main.bottom.status.JNotepadStatusBox; +import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTab; +import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTabPane; +import org.jcnc.jnotepad.root.center.main.top.menu.JNotepadMenuBar; import org.jcnc.jnotepad.ui.setStage.SetStage; import org.jcnc.jnotepad.view.manager.ViewManager; diff --git a/src/main/java/org/jcnc/jnotepad/ui/module/LineNumberTextArea.java b/src/main/java/org/jcnc/jnotepad/ui/module/LineNumberTextArea.java index 81ee991..cfe2d63 100644 --- a/src/main/java/org/jcnc/jnotepad/ui/module/LineNumberTextArea.java +++ b/src/main/java/org/jcnc/jnotepad/ui/module/LineNumberTextArea.java @@ -3,10 +3,10 @@ package org.jcnc.jnotepad.ui.module; import javafx.beans.property.StringProperty; import javafx.scene.control.TextArea; import javafx.scene.layout.BorderPane; +import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTab; import org.jcnc.jnotepad.tool.LogUtil; import org.jcnc.jnotepad.tool.SingletonUtil; import org.jcnc.jnotepad.tool.UiUtil; -import org.jcnc.jnotepad.ui.root.center.tab.JNotepadTab; import org.slf4j.Logger; import java.io.BufferedWriter; diff --git a/src/main/java/org/jcnc/jnotepad/view/manager/ViewManager.java b/src/main/java/org/jcnc/jnotepad/view/manager/ViewManager.java index 3d25a34..1f19345 100644 --- a/src/main/java/org/jcnc/jnotepad/view/manager/ViewManager.java +++ b/src/main/java/org/jcnc/jnotepad/view/manager/ViewManager.java @@ -3,9 +3,7 @@ package org.jcnc.jnotepad.view.manager; import javafx.scene.Scene; import javafx.scene.layout.BorderPane; import org.jcnc.jnotepad.exception.AppException; -import org.jcnc.jnotepad.ui.root.bottom.status.JNotepadStatusBox; -import org.jcnc.jnotepad.ui.root.center.tab.JNotepadTabPane; -import org.jcnc.jnotepad.ui.root.top.RootTopVBox; +import org.jcnc.jnotepad.root.center.main.MainBorderPane; /** @@ -76,12 +74,13 @@ public class ViewManager { // 创建主界面布局 root = new BorderPane(); + root.setCenter(MainBorderPane.getInstance()); - root.setTop(RootTopVBox.getInstance()); - - // 创建标签页和文本编辑区域 - root.setCenter(JNotepadTabPane.getInstance()); - root.setBottom(JNotepadStatusBox.getInstance()); +// root.setTop(RootTopVBox.getInstance()); +// +// // 创建标签页和文本编辑区域 +// root.setCenter(JNotepadTabPane.getInstance()); +// root.setBottom(JNotepadStatusBox.getInstance()); scene.setRoot(root); } From dec919346925fd339ec823abafe58552836523d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E8=BD=B2?= Date: Thu, 31 Aug 2023 01:56:50 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BE=A7=E8=BE=B9?= =?UTF-8?q?=E6=A0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jcnc/jnotepad/root/RootBorderPane.java | 8 +++++++ .../root/bottom/RootBottomSideBarVBox.java | 22 +++++++++++++++++++ .../root/center/main/MainBorderPane.java | 4 ++-- .../{RootTopVBox.java => MainTopVBox.java} | 8 +++---- .../left/sidebar/RootLeftSideBarVBox.java | 22 +++++++++++++++++++ .../root/right/RootRightSideBarVBox.java | 22 +++++++++++++++++++ .../jnotepad/root/top/RootTopSideBarVBox.java | 22 +++++++++++++++++++ .../jnotepad/view/manager/ViewManager.java | 10 ++------- 8 files changed, 104 insertions(+), 14 deletions(-) create mode 100644 src/main/java/org/jcnc/jnotepad/root/bottom/RootBottomSideBarVBox.java rename src/main/java/org/jcnc/jnotepad/root/center/main/top/{RootTopVBox.java => MainTopVBox.java} (69%) create mode 100644 src/main/java/org/jcnc/jnotepad/root/left/sidebar/RootLeftSideBarVBox.java create mode 100644 src/main/java/org/jcnc/jnotepad/root/right/RootRightSideBarVBox.java create mode 100644 src/main/java/org/jcnc/jnotepad/root/top/RootTopSideBarVBox.java diff --git a/src/main/java/org/jcnc/jnotepad/root/RootBorderPane.java b/src/main/java/org/jcnc/jnotepad/root/RootBorderPane.java index bdd939e..4be8100 100644 --- a/src/main/java/org/jcnc/jnotepad/root/RootBorderPane.java +++ b/src/main/java/org/jcnc/jnotepad/root/RootBorderPane.java @@ -1,6 +1,10 @@ package org.jcnc.jnotepad.root; +import org.jcnc.jnotepad.root.bottom.RootBottomSideBarVBox; import org.jcnc.jnotepad.root.center.main.MainBorderPane; +import org.jcnc.jnotepad.root.left.sidebar.RootLeftSideBarVBox; +import org.jcnc.jnotepad.root.right.RootRightSideBarVBox; +import org.jcnc.jnotepad.root.top.RootTopSideBarVBox; import org.jcnc.jnotepad.ui.module.AbstractBorderPane; public class RootBorderPane extends AbstractBorderPane { @@ -13,6 +17,10 @@ public class RootBorderPane extends AbstractBorderPane { private void initRootBorderPane() { setCenterComponent(MainBorderPane.getInstance()); + setLeftComponent(RootLeftSideBarVBox.getInstance()); + setRightComponent(RootRightSideBarVBox.getInstance()); + setTopComponent(RootTopSideBarVBox.getInstance()); + setBottomComponent(RootBottomSideBarVBox.getInstance()); } public static RootBorderPane getInstance() { diff --git a/src/main/java/org/jcnc/jnotepad/root/bottom/RootBottomSideBarVBox.java b/src/main/java/org/jcnc/jnotepad/root/bottom/RootBottomSideBarVBox.java new file mode 100644 index 0000000..60ba7f4 --- /dev/null +++ b/src/main/java/org/jcnc/jnotepad/root/bottom/RootBottomSideBarVBox.java @@ -0,0 +1,22 @@ +package org.jcnc.jnotepad.root.bottom; + +import javafx.geometry.Insets; +import org.jcnc.jnotepad.ui.module.AbstractVBox; + +public class RootBottomSideBarVBox extends AbstractVBox { + + private static final RootBottomSideBarVBox INSTANCE = new RootBottomSideBarVBox(); + + private RootBottomSideBarVBox() { + initSidebarVBox(); + } + + private void initSidebarVBox() { + setPadding(new Insets(10)); + setSpacing(10); + } + + public static RootBottomSideBarVBox getInstance() { + return INSTANCE; + } +} diff --git a/src/main/java/org/jcnc/jnotepad/root/center/main/MainBorderPane.java b/src/main/java/org/jcnc/jnotepad/root/center/main/MainBorderPane.java index 3971112..4dadde6 100644 --- a/src/main/java/org/jcnc/jnotepad/root/center/main/MainBorderPane.java +++ b/src/main/java/org/jcnc/jnotepad/root/center/main/MainBorderPane.java @@ -2,7 +2,7 @@ package org.jcnc.jnotepad.root.center.main; import org.jcnc.jnotepad.root.center.main.bottom.status.JNotepadStatusBox; import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTabPane; -import org.jcnc.jnotepad.root.center.main.top.RootTopVBox; +import org.jcnc.jnotepad.root.center.main.top.MainTopVBox; import org.jcnc.jnotepad.ui.module.AbstractBorderPane; public class MainBorderPane extends AbstractBorderPane { @@ -18,7 +18,7 @@ public class MainBorderPane extends AbstractBorderPane { this.setCenter(JNotepadTabPane.getInstance()); - this.setTopComponent(RootTopVBox.getInstance()); + this.setTopComponent(MainTopVBox.getInstance()); } public static MainBorderPane getInstance() { diff --git a/src/main/java/org/jcnc/jnotepad/root/center/main/top/RootTopVBox.java b/src/main/java/org/jcnc/jnotepad/root/center/main/top/MainTopVBox.java similarity index 69% rename from src/main/java/org/jcnc/jnotepad/root/center/main/top/RootTopVBox.java rename to src/main/java/org/jcnc/jnotepad/root/center/main/top/MainTopVBox.java index a4b01ed..0238371 100644 --- a/src/main/java/org/jcnc/jnotepad/root/center/main/top/RootTopVBox.java +++ b/src/main/java/org/jcnc/jnotepad/root/center/main/top/MainTopVBox.java @@ -4,16 +4,16 @@ import javafx.scene.layout.VBox; import org.jcnc.jnotepad.root.center.main.top.menu.JNotepadMenuBar; import org.jcnc.jnotepad.root.center.main.top.tools.ToolHBox; -public class RootTopVBox extends VBox { - private static final RootTopVBox INSTANCE = new RootTopVBox(); +public class MainTopVBox extends VBox { + private static final MainTopVBox INSTANCE = new MainTopVBox(); - private RootTopVBox() { + private MainTopVBox() { // 在构造函数中初始化 getChildren().add(JNotepadMenuBar.getInstance()); getChildren().add(ToolHBox.getInstance()); } - public static RootTopVBox getInstance() { + public static MainTopVBox getInstance() { return INSTANCE; } diff --git a/src/main/java/org/jcnc/jnotepad/root/left/sidebar/RootLeftSideBarVBox.java b/src/main/java/org/jcnc/jnotepad/root/left/sidebar/RootLeftSideBarVBox.java new file mode 100644 index 0000000..89da1ae --- /dev/null +++ b/src/main/java/org/jcnc/jnotepad/root/left/sidebar/RootLeftSideBarVBox.java @@ -0,0 +1,22 @@ +package org.jcnc.jnotepad.root.left.sidebar; + +import javafx.geometry.Insets; +import org.jcnc.jnotepad.ui.module.AbstractVBox; + +public class RootLeftSideBarVBox extends AbstractVBox { + + private static final RootLeftSideBarVBox INSTANCE = new RootLeftSideBarVBox(); + + private RootLeftSideBarVBox() { + initSidebarVBox(); + } + + private void initSidebarVBox() { + setPadding(new Insets(10)); + setSpacing(10); + } + + public static RootLeftSideBarVBox getInstance() { + return INSTANCE; + } +} diff --git a/src/main/java/org/jcnc/jnotepad/root/right/RootRightSideBarVBox.java b/src/main/java/org/jcnc/jnotepad/root/right/RootRightSideBarVBox.java new file mode 100644 index 0000000..f4d2782 --- /dev/null +++ b/src/main/java/org/jcnc/jnotepad/root/right/RootRightSideBarVBox.java @@ -0,0 +1,22 @@ +package org.jcnc.jnotepad.root.right; + +import javafx.geometry.Insets; +import org.jcnc.jnotepad.ui.module.AbstractVBox; + +public class RootRightSideBarVBox extends AbstractVBox { + + private static final RootRightSideBarVBox INSTANCE = new RootRightSideBarVBox(); + + private RootRightSideBarVBox() { + initSidebarVBox(); + } + + private void initSidebarVBox() { + setPadding(new Insets(10)); + setSpacing(10); + } + + public static RootRightSideBarVBox getInstance() { + return INSTANCE; + } +} diff --git a/src/main/java/org/jcnc/jnotepad/root/top/RootTopSideBarVBox.java b/src/main/java/org/jcnc/jnotepad/root/top/RootTopSideBarVBox.java new file mode 100644 index 0000000..c7ae955 --- /dev/null +++ b/src/main/java/org/jcnc/jnotepad/root/top/RootTopSideBarVBox.java @@ -0,0 +1,22 @@ +package org.jcnc.jnotepad.root.top; + +import javafx.geometry.Insets; +import org.jcnc.jnotepad.ui.module.AbstractVBox; + +public class RootTopSideBarVBox extends AbstractVBox { + + private static final RootTopSideBarVBox INSTANCE = new RootTopSideBarVBox(); + + private RootTopSideBarVBox() { + initSidebarVBox(); + } + + private void initSidebarVBox() { + setPadding(new Insets(10)); + setSpacing(10); + } + + public static RootTopSideBarVBox getInstance() { + return INSTANCE; + } +} diff --git a/src/main/java/org/jcnc/jnotepad/view/manager/ViewManager.java b/src/main/java/org/jcnc/jnotepad/view/manager/ViewManager.java index 1f19345..bf597ee 100644 --- a/src/main/java/org/jcnc/jnotepad/view/manager/ViewManager.java +++ b/src/main/java/org/jcnc/jnotepad/view/manager/ViewManager.java @@ -3,7 +3,7 @@ package org.jcnc.jnotepad.view.manager; import javafx.scene.Scene; import javafx.scene.layout.BorderPane; import org.jcnc.jnotepad.exception.AppException; -import org.jcnc.jnotepad.root.center.main.MainBorderPane; +import org.jcnc.jnotepad.root.RootBorderPane; /** @@ -74,13 +74,7 @@ public class ViewManager { // 创建主界面布局 root = new BorderPane(); - root.setCenter(MainBorderPane.getInstance()); - -// root.setTop(RootTopVBox.getInstance()); -// -// // 创建标签页和文本编辑区域 -// root.setCenter(JNotepadTabPane.getInstance()); -// root.setBottom(JNotepadStatusBox.getInstance()); + root.setCenter(RootBorderPane.getInstance()); scene.setRoot(root); } From 60e4eb3f22348702a05288fd296bc97a4ec59c00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E8=BD=B2?= Date: Thu, 31 Aug 2023 02:14:46 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=BA=95=E9=83=A8?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E6=A0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../root/bottom/RootBottomSideBarVBox.java | 5 ++--- .../jnotepad/root/center/main/MainBorderPane.java | 7 +++---- .../main/bottom/status/JNotepadStatusBox.java | 15 ++++++++++++--- .../root/left/sidebar/RootLeftSideBarVBox.java | 5 ++--- .../jnotepad/root/right/RootRightSideBarVBox.java | 4 +--- .../jnotepad/root/top/RootTopSideBarVBox.java | 4 +--- 6 files changed, 21 insertions(+), 19 deletions(-) diff --git a/src/main/java/org/jcnc/jnotepad/root/bottom/RootBottomSideBarVBox.java b/src/main/java/org/jcnc/jnotepad/root/bottom/RootBottomSideBarVBox.java index 60ba7f4..8a02199 100644 --- a/src/main/java/org/jcnc/jnotepad/root/bottom/RootBottomSideBarVBox.java +++ b/src/main/java/org/jcnc/jnotepad/root/bottom/RootBottomSideBarVBox.java @@ -1,6 +1,6 @@ package org.jcnc.jnotepad.root.bottom; -import javafx.geometry.Insets; +import org.jcnc.jnotepad.root.center.main.bottom.status.JNotepadStatusBox; import org.jcnc.jnotepad.ui.module.AbstractVBox; public class RootBottomSideBarVBox extends AbstractVBox { @@ -12,8 +12,7 @@ public class RootBottomSideBarVBox extends AbstractVBox { } private void initSidebarVBox() { - setPadding(new Insets(10)); - setSpacing(10); + getChildren().addAll(JNotepadStatusBox.getInstance()); } public static RootBottomSideBarVBox getInstance() { diff --git a/src/main/java/org/jcnc/jnotepad/root/center/main/MainBorderPane.java b/src/main/java/org/jcnc/jnotepad/root/center/main/MainBorderPane.java index 4dadde6..d6a32ac 100644 --- a/src/main/java/org/jcnc/jnotepad/root/center/main/MainBorderPane.java +++ b/src/main/java/org/jcnc/jnotepad/root/center/main/MainBorderPane.java @@ -1,6 +1,5 @@ package org.jcnc.jnotepad.root.center.main; -import org.jcnc.jnotepad.root.center.main.bottom.status.JNotepadStatusBox; import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTabPane; import org.jcnc.jnotepad.root.center.main.top.MainTopVBox; import org.jcnc.jnotepad.ui.module.AbstractBorderPane; @@ -14,11 +13,11 @@ public class MainBorderPane extends AbstractBorderPane { } private void initRootBorderPane() { - this.setBottomComponent(JNotepadStatusBox.getInstance()); + //setBottomComponent(JNotepadStatusBox.getInstance()); - this.setCenter(JNotepadTabPane.getInstance()); + setCenter(JNotepadTabPane.getInstance()); - this.setTopComponent(MainTopVBox.getInstance()); + setTopComponent(MainTopVBox.getInstance()); } public static MainBorderPane getInstance() { diff --git a/src/main/java/org/jcnc/jnotepad/root/center/main/bottom/status/JNotepadStatusBox.java b/src/main/java/org/jcnc/jnotepad/root/center/main/bottom/status/JNotepadStatusBox.java index 4e0c708..5c51410 100644 --- a/src/main/java/org/jcnc/jnotepad/root/center/main/bottom/status/JNotepadStatusBox.java +++ b/src/main/java/org/jcnc/jnotepad/root/center/main/bottom/status/JNotepadStatusBox.java @@ -1,6 +1,7 @@ package org.jcnc.jnotepad.root.center.main.bottom.status; import javafx.geometry.Insets; +import javafx.geometry.Pos; import javafx.scene.control.Label; import javafx.scene.control.TextArea; import org.jcnc.jnotepad.app.i18n.UiResourceBundle; @@ -46,6 +47,7 @@ public class JNotepadStatusBox extends AbstractHBox { * @since 2023/8/27 9:33 */ public void initStatusBox() { + this.getChildren().clear(); // 创建状态栏 statusLabel = new Label(); @@ -57,9 +59,16 @@ public class JNotepadStatusBox extends AbstractHBox { this.getChildren().add(statusLabel); this.getChildren().add(encodingLabel); this.getProperties().put("borderpane-margin", new Insets(5, 10, 5, 10)); - + this.setAlignment(Pos.BASELINE_RIGHT); UiResourceBundle.getInstance().addListener((observable, oldValue, newValue) -> updateWhenTabSelected()); + /* + 第一个参数 10 表示上边距。 + 第二个参数 10 表示右边距。 + 第三个参数 10 表示下边距。 + 第四个参数 10 表示左边距。 + */ + setMargin(statusLabel, new Insets(5, 10, 5, 10)); } public void updateEncodingLabel() { @@ -75,7 +84,7 @@ public class JNotepadStatusBox extends AbstractHBox { if (encoding == null) { encoding = Charset.defaultCharset().name(); } - this.encodingLabel.setText(getEncodingFormattedText(encoding)); + this.encodingLabel.setText(getEncodingFormattedText(encoding) + "\t"); } /** @@ -155,7 +164,7 @@ public class JNotepadStatusBox extends AbstractHBox { } protected String getEncodingFormattedText(String encoding) { - String encodingLabelFormat = "\t%s : %s"; + String encodingLabelFormat = "%s : %s"; return String.format(encodingLabelFormat, UiResourceBundle.getContent(TextConstants.ENCODE), encoding); } } diff --git a/src/main/java/org/jcnc/jnotepad/root/left/sidebar/RootLeftSideBarVBox.java b/src/main/java/org/jcnc/jnotepad/root/left/sidebar/RootLeftSideBarVBox.java index 89da1ae..c9206ea 100644 --- a/src/main/java/org/jcnc/jnotepad/root/left/sidebar/RootLeftSideBarVBox.java +++ b/src/main/java/org/jcnc/jnotepad/root/left/sidebar/RootLeftSideBarVBox.java @@ -1,6 +1,5 @@ package org.jcnc.jnotepad.root.left.sidebar; -import javafx.geometry.Insets; import org.jcnc.jnotepad.ui.module.AbstractVBox; public class RootLeftSideBarVBox extends AbstractVBox { @@ -12,10 +11,10 @@ public class RootLeftSideBarVBox extends AbstractVBox { } private void initSidebarVBox() { - setPadding(new Insets(10)); - setSpacing(10); + } + public static RootLeftSideBarVBox getInstance() { return INSTANCE; } diff --git a/src/main/java/org/jcnc/jnotepad/root/right/RootRightSideBarVBox.java b/src/main/java/org/jcnc/jnotepad/root/right/RootRightSideBarVBox.java index f4d2782..72426fc 100644 --- a/src/main/java/org/jcnc/jnotepad/root/right/RootRightSideBarVBox.java +++ b/src/main/java/org/jcnc/jnotepad/root/right/RootRightSideBarVBox.java @@ -1,6 +1,5 @@ package org.jcnc.jnotepad.root.right; -import javafx.geometry.Insets; import org.jcnc.jnotepad.ui.module.AbstractVBox; public class RootRightSideBarVBox extends AbstractVBox { @@ -12,8 +11,7 @@ public class RootRightSideBarVBox extends AbstractVBox { } private void initSidebarVBox() { - setPadding(new Insets(10)); - setSpacing(10); + } public static RootRightSideBarVBox getInstance() { diff --git a/src/main/java/org/jcnc/jnotepad/root/top/RootTopSideBarVBox.java b/src/main/java/org/jcnc/jnotepad/root/top/RootTopSideBarVBox.java index c7ae955..fc9c90a 100644 --- a/src/main/java/org/jcnc/jnotepad/root/top/RootTopSideBarVBox.java +++ b/src/main/java/org/jcnc/jnotepad/root/top/RootTopSideBarVBox.java @@ -1,6 +1,5 @@ package org.jcnc.jnotepad.root.top; -import javafx.geometry.Insets; import org.jcnc.jnotepad.ui.module.AbstractVBox; public class RootTopSideBarVBox extends AbstractVBox { @@ -12,8 +11,7 @@ public class RootTopSideBarVBox extends AbstractVBox { } private void initSidebarVBox() { - setPadding(new Insets(10)); - setSpacing(10); + } public static RootTopSideBarVBox getInstance() {