diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index dbfe06eedc45c6dd39ba2faf6352597d981c9670..974122b57738f6ab1c9fe6318879deb56f4522b1 100644 --- a/src/main/java/module-info.java +++ b/src/main/java/module-info.java @@ -20,9 +20,14 @@ module org.jcnc.jnotepad { exports org.jcnc.jnotepad.controller.manager; exports org.jcnc.jnotepad.controller.i18n; exports org.jcnc.jnotepad.controller.event.handler.tool; - exports org.jcnc.jnotepad.controller.event.handler.menuBar; + exports org.jcnc.jnotepad.controller.event.handler.menubar; exports org.jcnc.jnotepad.tool; - exports org.jcnc.jnotepad.Interface; + exports org.jcnc.jnotepad.interfaces; + exports org.jcnc.jnotepad.ui.module; + exports org.jcnc.jnotepad.ui.setstage; + exports org.jcnc.jnotepad.root.center.main.center.tab; + exports org.jcnc.jnotepad.root.top.menu; + exports org.jcnc.jnotepad.view.manager; opens org.jcnc.jnotepad.app.config; exports org.jcnc.jnotepad.root.center.main.bottom.status; diff --git a/src/main/java/org/jcnc/jnotepad/Interface/BorderPaneAble.java b/src/main/java/org/jcnc/jnotepad/Interface/BorderPaneAble.java deleted file mode 100644 index 2e0162b9853c9c30e2933cc93d1b1d965319c508..0000000000000000000000000000000000000000 --- a/src/main/java/org/jcnc/jnotepad/Interface/BorderPaneAble.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.jcnc.jnotepad.Interface; - -import javafx.scene.Node; - - -public interface BorderPaneAble { - - void setTopComponent(Node node); - - void setBottomComponent(Node node); - - void setLeftComponent(Node node); - - void setRightComponent(Node node); - - void setCenterComponent(Node node); - - -} diff --git a/src/main/java/org/jcnc/jnotepad/Interface/HBoxAble.java b/src/main/java/org/jcnc/jnotepad/Interface/HBoxAble.java deleted file mode 100644 index 2eb7826f430a3d8825ce52e131c7bfec1a23cb9f..0000000000000000000000000000000000000000 --- a/src/main/java/org/jcnc/jnotepad/Interface/HBoxAble.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.jcnc.jnotepad.Interface; - -import javafx.scene.Node; -import javafx.scene.layout.HBox; - -public interface HBoxAble { - - void addChild(Node node); - - void addChild(Node... nodes); - - HBox getHBox(); -} diff --git a/src/main/java/org/jcnc/jnotepad/Interface/VBoxAble.java b/src/main/java/org/jcnc/jnotepad/Interface/VBoxAble.java deleted file mode 100644 index 88bc9abbeebd1133433a50e265d7daabf47bca52..0000000000000000000000000000000000000000 --- a/src/main/java/org/jcnc/jnotepad/Interface/VBoxAble.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.jcnc.jnotepad.Interface; - -import javafx.scene.Node; -import javafx.scene.layout.VBox; - -public interface VBoxAble { - void addChild(Node node); - - void addChild(Node... nodes); - - VBox getVBox(); -} diff --git a/src/main/java/org/jcnc/jnotepad/LunchApp.java b/src/main/java/org/jcnc/jnotepad/LunchApp.java index 179db049fdddee7b6ef2745ee060a6690e5cd97c..a0b2c19c814cac7158ffae59b9adaad4cd732b38 100644 --- a/src/main/java/org/jcnc/jnotepad/LunchApp.java +++ b/src/main/java/org/jcnc/jnotepad/LunchApp.java @@ -1,6 +1,5 @@ package org.jcnc.jnotepad; - import atlantafx.base.theme.PrimerLight; import javafx.application.Application; import javafx.scene.Scene; @@ -20,13 +19,18 @@ import java.util.List; import java.util.Objects; import java.util.concurrent.ExecutorService; - /** - * 启动程序 + * 启动程序类 + * + *
该类用于启动 JNotepad 记事本应用程序。
* * @author 许轲 */ public class LunchApp extends Application { + /** + * 线程池 + */ + private final ExecutorService threadPool = ThreadPoolManager.getThreadPool(); private static final Pane ROOT = new Pane(); private static final Scene SCENE; @@ -37,14 +41,19 @@ public class LunchApp extends Application { } /** - * 线程池 + * 应用程序的入口点,启动 JavaFX 应用程序。 + * + * @param args 命令行参数 */ - private final ExecutorService threadPool = ThreadPoolManager.getThreadPool(); - public static void main(String[] args) { launch(args); } + /** + * 获取当前窗口。 + * + * @return 当前窗口 + */ public static Window getWindow() { return SCENE.getWindow(); } @@ -56,25 +65,19 @@ public class LunchApp extends Application { initUiComponents(); UiResourceBundle.bindStringProperty(primaryStage.titleProperty(), TextConstants.TITLE); -/* // 获取自定义标题栏的实例并添加到BorderPane的顶部 - CustomTitleBar customTitleBar = CustomTitleBar.getInstance(); - // 使自定义标题栏可拖动 - customTitleBar.makeDraggable(primaryStage);*/ -// primaryStage.initStyle(StageStyle.UNDECORATED); // 移除默认窗口装饰 primaryStage.setScene(SCENE); primaryStage.setWidth(SCENE.getWidth()); primaryStage.setHeight(SCENE.getHeight()); - primaryStage.setScene(SCENE); primaryStage.getIcons().add(UiUtil.getIcon()); primaryStage.show(); } private void initUiComponents() { - //1. 加载语言 + // 1. 加载语言 LocalizationController.initLocal(); - //2. 加载组件 + // 2. 加载组件 ViewManager viewManager = ViewManager.getInstance(SCENE); viewManager.initScreen(SCENE); @@ -88,5 +91,4 @@ public class LunchApp extends Application { // 关闭线程池 threadPool.shutdownNow(); } - } diff --git a/src/main/java/org/jcnc/jnotepad/constants/AppConstants.java b/src/main/java/org/jcnc/jnotepad/constants/AppConstants.java index ade589f41fff287c3f51d13cea3b8feae199e048..4e94de6824be3c6fecb1aba23e37a8f7fba82f9d 100644 --- a/src/main/java/org/jcnc/jnotepad/constants/AppConstants.java +++ b/src/main/java/org/jcnc/jnotepad/constants/AppConstants.java @@ -1,11 +1,10 @@ package org.jcnc.jnotepad.constants; /** - * 应用常量 + * 应用常量类,用于存放应用程序中的常量值。 * * @author 许轲 */ - public class AppConstants { /** * 初始宽度 @@ -20,6 +19,9 @@ public class AppConstants { */ public static final String APP_ICON = "/img/icon.png"; + /** + * 私有构造函数,防止该类被实例化。 + */ private AppConstants() { } diff --git a/src/main/java/org/jcnc/jnotepad/constants/TextConstants.java b/src/main/java/org/jcnc/jnotepad/constants/TextConstants.java index f19289c017a74df949cb0bdb4316c60d7a2fe5ea..87b67c8a7d57d2b831d90d9da1caf0c81b066b6b 100644 --- a/src/main/java/org/jcnc/jnotepad/constants/TextConstants.java +++ b/src/main/java/org/jcnc/jnotepad/constants/TextConstants.java @@ -9,11 +9,6 @@ package org.jcnc.jnotepad.constants; public class TextConstants { public static final String TITLE = "title"; - - - /// GlobalConfig文本常量 - - public static final String SAVE = "SAVE"; public static final String FILE = "FILE"; public static final String NEW = "NEW"; diff --git a/src/main/java/org/jcnc/jnotepad/controller/config/AppConfigController.java b/src/main/java/org/jcnc/jnotepad/controller/config/AppConfigController.java index ef0148e1441c261849a97c3adcf4db2e8beb116f..a3bd4845b3e60be5ec75fb1e8ef74b9c1b6d0728 100644 --- a/src/main/java/org/jcnc/jnotepad/controller/config/AppConfigController.java +++ b/src/main/java/org/jcnc/jnotepad/controller/config/AppConfigController.java @@ -18,6 +18,8 @@ import java.util.List; /** * 应用程序配置控制器 * + *该类负责管理应用程序的配置文件,包括加载、持久化和更新配置信息等操作。
+ * * @author songdragon */ public class AppConfigController { @@ -36,12 +38,17 @@ public class AppConfigController { loadConfig(); } + /** + * 获取 AppConfigController 的实例。 + * + * @return AppConfigController 的实例 + */ public static AppConfigController getInstance() { return INSTANCE; } /** - * 加载配置文件内容 + * 加载配置文件内容。 */ public void loadConfig() { createConfigIfNotExists(); @@ -59,7 +66,7 @@ public class AppConfigController { } /** - * 配置文件持久化 + * 配置文件持久化。 */ public void writeAppConfig() { createConfigIfNotExists(); @@ -67,7 +74,7 @@ public class AppConfigController { } /** - * 将appConfig对象持久化到配置文件中 + * 将 appConfig 对象持久化到配置文件中。 * * @param appConfig 应用配置对象 */ @@ -83,6 +90,9 @@ public class AppConfigController { } } + /** + * 创建配置文件如果不存在。 + */ public void createConfigIfNotExists() { Path configPath = getConfigPath(); if (configPath.toFile().exists()) { @@ -95,6 +105,11 @@ public class AppConfigController { writeAppConfig(null); } + /** + * 获取配置文件的路径。 + * + * @return 配置文件的路径 + */ public Path getConfigPath() { return Paths.get(getDir(), CONFIG_NAME); } @@ -104,7 +119,7 @@ public class AppConfigController { } /** - * 获取当前配置文件所在目录 + * 获取当前配置文件所在目录。 * * @return 所在目录 */ @@ -121,9 +136,9 @@ public class AppConfigController { } /** - * 获取自动换行设置,默认自动换行 + * 获取自动换行设置,默认自动换行。 * - * @return true, 自动换行;false,不自动换行 + * @return true,自动换行;false,不自动换行 */ public boolean getAutoLineConfig() { return getAppConfig().isTextWrap(); @@ -134,7 +149,7 @@ public class AppConfigController { } /** - * 更新配置文件中的语言设置 + * 更新配置文件中的语言设置。 * * @param language 更新后的语言设置 */ @@ -146,10 +161,20 @@ public class AppConfigController { writeAppConfig(); } + /** + * 获取当前的语言设置。 + * + * @return 语言设置 + */ public String getLanguage() { return this.appConfig.getLanguage(); } + /** + * 获取快捷键设置。 + * + * @return 快捷键设置列表 + */ public List- * 当用户选择新建文件时候,将创建一个新的文本编辑区,并在Tab页中显示。 + * + *
当用户选择新建文件时,将创建一个新的文本编辑区,并在Tab页中显示。
* * @author 许轲 */ @@ -30,21 +28,24 @@ public class NewFile implements EventHandler该事件处理程序用于打开配置文件。
* * @author gewuyou */ public class OpenConfig extends OpenFile { + /** + * 处理打开配置文件事件。 + * + * @param actionEvent 事件对象 + */ @Override public void handle(ActionEvent actionEvent) { // 显示文件选择对话框,并获取配置文件 File file = SingletonUtil.getAppConfigController().getConfigPath().toFile(); - LogUtil.getLogger(this.getClass()).info("已调用打开配置文件功能,{}", file); + LogUtil.getLogger(this.getClass()).info("已调用打开配置文件功能, {}", file); // 创建打开文件的任务并启动线程执行任务 openFile(file); } 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 similarity index 86% rename from src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/OpenFile.java rename to src/main/java/org/jcnc/jnotepad/controller/event/handler/menubar/OpenFile.java index f73dc3714138f30946ffe237c00feb81b6f4afef..26747791f7a51dc9c5b7f68f423b8c4f4f18f642 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 @@ -1,4 +1,4 @@ -package org.jcnc.jnotepad.controller.event.handler.menuBar; +package org.jcnc.jnotepad.controller.event.handler.menubar; import javafx.application.Platform; import javafx.concurrent.Task; @@ -9,8 +9,8 @@ import javafx.stage.FileChooser; import org.jcnc.jnotepad.app.i18n.UiResourceBundle; import org.jcnc.jnotepad.constants.TextConstants; import org.jcnc.jnotepad.manager.ThreadPoolManager; -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.center.tab.MainTab; +import org.jcnc.jnotepad.root.center.main.center.tab.MainTabPane; import org.jcnc.jnotepad.tool.EncodingDetector; import org.jcnc.jnotepad.tool.LogUtil; import org.jcnc.jnotepad.tool.UiUtil; @@ -25,7 +25,6 @@ import java.nio.charset.Charset; import static org.jcnc.jnotepad.manager.ThreadPoolManager.threadContSelfSubtracting; - /** * 打开文件的事件处理程序。 *
@@ -84,9 +83,9 @@ public class OpenFile implements EventHandler
+ * 当用户选择重命名文件时,如果当前标签页关联文件,则重命名关联文件;
+ * 否则,重命名标签页。
*
* @author gewuyou
*/
@@ -27,7 +29,7 @@ public class RenameFile implements EventHandler
+ * 当用户选择保存文件时,如果当前标签页是关联文件,则自动保存;
+ * 否则,调用另存为方法。
*
* @author gewuyou
*/
@@ -28,47 +29,48 @@ public class SaveFile implements EventHandler
- * 当用户点击设置的时候,将打开设置窗口。
+ *
+ * 当用户点击设置按钮时,将打开设置窗口。 该类负责处理应用程序的本地化配置,包括语言和区域设置。 应用异常是一个运行时异常,通常用于捕获和处理应用程序中的不可预料的错误和异常情况。 该接口定义了设置BorderPane的各个子组件(上、下、左、右、中)的方法。 该接口定义了控制器的方法,用于打开关联文件并创建TextArea。 该接口定义了添加子节点和获取水平布局的方法。 该接口定义了添加子节点和获取垂直布局的方法。 该类用于管理应用程序中的线程池,提供了异步操作的执行环境。 该布局包含了应用程序的主要组件,包括主界面、工具栏、侧边栏、菜单栏等。 设置主界面(MainBorderPane)、工具栏(ToolHBox)、侧边栏(RootRightSideBarVBox)、
+ * 菜单栏(RootTopBorderPane)以及底部边栏(RootBottomSideBarVBox)等主要组件。 该类用于显示底部根侧边栏的垂直布局,包括状态栏等。 该类用于显示文本框及其周边组件,作为主界面的中心区域。 该类继承自 JavaFX 的 ToolBar 类,并提供了一个单例实例,用于管理工具栏上的按钮。 工具栏上的按钮用于执行不同的操作,比如设置操作。 该类继承自 JavaFX 的 HBox 类,用于将工具栏放置在水平布局中。 工具栏水平布局中包含一个 JNotepadToolBar 的单例实例,并设置其子节点水平拉伸属性,以确保工具栏在水平方向上充分占用空间。 该边界面板用于显示文本框以及文本框周边的内容。 在顶部区域添加了 JNotepadMenuBar 的单例实例。 该工具类用于检测文本文件的编码类型。 该类用于封装 Jackson 对象映射工具的配置和操作。 注意:如果在JavaFX项目中需要调用日志,请使用Platform.runLater()来调用。 传入当前需要记录的类,返回记录该类的日志类。 建议一个类调用超过两次这个方法时,应当将该日志类变成成员对象,而不是多次调用。 用于创建一个错误类型的弹窗,显示给用户以指示发生了错误。 封装了除UI组件外项目中所有需要的单例组件,以减少单例带来的代码的复杂性。 封装了项目中所有的UI组件,以减少组件单例模式造成的代码复杂性。 该工厂接口用于创建文件选择对话框,包括原始和详细两种类型。 这个抽象类继承自JavaFX的BorderPane类,实现了BorderPaneAble接口,用于管理UI组件的布局。 这个抽象类继承自JavaFX的HBox类,实现了HBoxAble接口,用于管理水平排列的UI组件。 这个抽象类继承自JavaFX的VBox类,实现了VBoxAble接口,用于管理垂直排列的UI组件。 这个类继承自JavaFX的BorderPane类,用于显示带有行号的文本区域。它包括主要文本区域和行号文本区域。 该类用于管理设置窗口的显示和内容。 该类负责管理应用程序的视图组件,包括主界面布局和标签页索引等。
- * 注意:本地化配置加载应当优先于快捷键配置加载
+ * 本地化控制器
+ *
+ *
- * 项目中所有异步操作建议使用该类进行获取线程执行异步操作
+ * 线程池管理类
+ *
+ *
2. 状态栏更新当前选中tab的字符编码
*/
public void updateWhenTabSelected() {
- JNotepadTabPane instance = JNotepadTabPane.getInstance();
+ MainTabPane instance = MainTabPane.getInstance();
if (instance.getSelected() != null) {
updateWordCountStatusLabel();
- JNotepadTab jNotepadTab = instance.getSelected();
- if (jNotepadTab != null) {
- updateEncodingLabel(jNotepadTab.getCharset().name());
+ MainTab mainTab = instance.getSelected();
+ if (mainTab != null) {
+ updateEncodingLabel(mainTab.getCharset().name());
}
}
}
diff --git a/src/main/java/org/jcnc/jnotepad/root/center/main/center/tab/JNotepadTab.java b/src/main/java/org/jcnc/jnotepad/root/center/main/center/tab/MainTab.java
similarity index 89%
rename from src/main/java/org/jcnc/jnotepad/root/center/main/center/tab/JNotepadTab.java
rename to src/main/java/org/jcnc/jnotepad/root/center/main/center/tab/MainTab.java
index 2d3007eb8642a46b85bf51ccde56018509dae62b..90ada80801f124ac961a8ba2801216eac4743427 100644
--- a/src/main/java/org/jcnc/jnotepad/root/center/main/center/tab/JNotepadTab.java
+++ b/src/main/java/org/jcnc/jnotepad/root/center/main/center/tab/MainTab.java
@@ -13,7 +13,7 @@ import java.nio.charset.Charset;
*
* @author songdragon
*/
-public class JNotepadTab extends Tab {
+public class MainTab extends Tab {
private final LineNumberTextArea lineNumberTextArea;
/**
@@ -26,15 +26,15 @@ public class JNotepadTab extends Tab {
private boolean isRelevance = false;
private Charset charset = Charset.defaultCharset();
- public JNotepadTab(String tabTitle) {
+ public MainTab(String tabTitle) {
this(tabTitle, new LineNumberTextArea());
}
- public JNotepadTab(String tabTitle, LineNumberTextArea textArea) {
+ public MainTab(String tabTitle, LineNumberTextArea textArea) {
this(tabTitle, textArea, Charset.defaultCharset());
}
- public JNotepadTab(String tabTitle, LineNumberTextArea textArea, Charset charset) {
+ public MainTab(String tabTitle, LineNumberTextArea textArea, Charset charset) {
super(tabTitle);
lineNumberTextArea = textArea;
this.setContent(lineNumberTextArea);
diff --git a/src/main/java/org/jcnc/jnotepad/root/center/main/center/tab/JNotepadTabPane.java b/src/main/java/org/jcnc/jnotepad/root/center/main/center/tab/MainTabPane.java
similarity index 81%
rename from src/main/java/org/jcnc/jnotepad/root/center/main/center/tab/JNotepadTabPane.java
rename to src/main/java/org/jcnc/jnotepad/root/center/main/center/tab/MainTabPane.java
index ff8f6139a835e7c1548edf83580588a6914f412e..f9c6e8b65cacbeb778fb32d72506b748c11983db 100644
--- a/src/main/java/org/jcnc/jnotepad/root/center/main/center/tab/JNotepadTabPane.java
+++ b/src/main/java/org/jcnc/jnotepad/root/center/main/center/tab/MainTabPane.java
@@ -10,15 +10,15 @@ import org.jcnc.jnotepad.tool.SingletonUtil;
*
* @author songdragon
*/
-public class JNotepadTabPane extends TabPane {
+public class MainTabPane extends TabPane {
- private static final JNotepadTabPane TAB_PANE = new JNotepadTabPane();
+ private static final MainTabPane TAB_PANE = new MainTabPane();
- private JNotepadTabPane() {
+ private MainTabPane() {
initListeners();
}
- public static JNotepadTabPane getInstance() {
+ public static MainTabPane getInstance() {
return TAB_PANE;
}
@@ -44,7 +44,7 @@ public class JNotepadTabPane extends TabPane {
*
* @param tab 新标签页
*/
- public void addNewTab(JNotepadTab tab) {
+ public void addNewTab(MainTab tab) {
if (tab == null) {
return;
}
@@ -61,8 +61,8 @@ public class JNotepadTabPane extends TabPane {
*
* @return 当前选中的标签页
*/
- public JNotepadTab getSelected() {
- return (JNotepadTab) this.getSelectionModel().getSelectedItem();
+ public MainTab getSelected() {
+ return (MainTab) this.getSelectionModel().getSelectedItem();
}
/**
@@ -70,7 +70,7 @@ public class JNotepadTabPane extends TabPane {
* 应用当前菜单上选中的自动换行设置。
*/
public void fireTabSelected() {
- JNotepadTab selectedTab = getSelected();
+ MainTab selectedTab = getSelected();
selectedTab.setAutoLine(SingletonUtil.getAppConfigController().getAutoLineConfig());
JNotepadStatusBox.getInstance().updateWhenTabSelected();
}
diff --git a/src/main/java/org/jcnc/jnotepad/root/left/sidebar/tools/JNotepadToolBar.java b/src/main/java/org/jcnc/jnotepad/root/left/sidebar/tools/ToolBar.java
similarity index 37%
rename from src/main/java/org/jcnc/jnotepad/root/left/sidebar/tools/JNotepadToolBar.java
rename to src/main/java/org/jcnc/jnotepad/root/left/sidebar/tools/ToolBar.java
index 0f75228a23cd557edf581da3b113a8bf4aa469c0..8fe6e8df00d16eb86623e0cb6ade071b36f15e0f 100644
--- a/src/main/java/org/jcnc/jnotepad/root/left/sidebar/tools/JNotepadToolBar.java
+++ b/src/main/java/org/jcnc/jnotepad/root/left/sidebar/tools/ToolBar.java
@@ -1,35 +1,60 @@
package org.jcnc.jnotepad.root.left.sidebar.tools;
import javafx.scene.control.Button;
-import javafx.scene.control.ToolBar;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
-public class JNotepadToolBar extends ToolBar {
- private static final JNotepadToolBar INSTANCE = new JNotepadToolBar();
-
+/**
+ * JNotepadToolBar 是 JNotepad 应用程序的工具栏类。
+ *
+ *
注意,使用该工具的方法时,如果需要在JavaFx项目中调用日志请使用Platform.runLater()调用
+ * 日志工具
+ *
+ *
建议一个类调用超过两次这个方法时,应当将该日志类变成成员对象,而不是多次调用
+ * @return org.slf4j.Logger 日志对象
+ *
+ *
- * 封装了除UI组件外项目中所有需要的单例组件,以减少单例带来的代码的复杂性
+ * 单例工具
+ *
+ *
获取当前选中的标签页
+ * @see MainTabPane
+ */
+ public static MainTab getJnotepadtab() {
+ return TAB_PANE.getSelected();
+ }
+
+ /**
+ * 获取应用窗口。
+ *
+ * @return javafx.stage.Window 应用窗口对象
* @apiNote JNotepadTabPane.getInstance().getSelected().getTabPane().getScene().getWindow()
- * @since 2023/8/29 14:12
*/
public static Window getAppWindow() {
- return LunchApp.getWindow();
+ return TAB_PANE.getSelected().getTabPane().getScene().getWindow();
+ }
+
+ /**
+ * 获取视图管理组件。
+ *
+ * @return org.jcnc.jnotepad.view.manager.ViewManager 视图管理组件对象
+ * @apiNote ViewManager.getInstance()
+ */
+ public static ViewManager getViewManager() {
+ return VIEW_MANAGER;
+ }
+
+ /**
+ * 获取状态栏组件。
+ *
+ * @return org.jcnc.jnotepad.root.center.main.bottom.status.JNotepadStatusBox 状态栏组件对象
+ */
+ public static StatusHorizontalBox getStatusBox() {
+ return STATUS_BOX;
+ }
+
+ /**
+ * 获取菜单栏组件。
+ *
+ * @return org.jcnc.jnotepad.root.top.menu.JNotepadMenuBar 菜单栏组件对象
+ */
+ public static JNotepadMenuBar getMenuBar() {
+ return MENU_BAR;
}
}
diff --git a/src/main/java/org/jcnc/jnotepad/ui/dialog/factory/FileChooserFactory.java b/src/main/java/org/jcnc/jnotepad/ui/dialog/factory/FileChooserFactory.java
index 7b6489bd46d4eedb598c997e36813726cd43bf38..5cb0f6dec1e2960e694d89274951a0c67339ba8f 100644
--- a/src/main/java/org/jcnc/jnotepad/ui/dialog/factory/FileChooserFactory.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/dialog/factory/FileChooserFactory.java
@@ -7,27 +7,27 @@ import java.io.File;
/**
* 文件选择对话框工厂
*
+ *