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 1159df0..1a2aef3 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 @@ -40,9 +40,8 @@ public class OpenFile implements EventHandler { */ @Override public void handle(ActionEvent event) { - FileChooserFactory factory = new TextFileChooserFactory(); // 显示文件选择对话框,并获取选中的文件 - File file = factory.createFileChooser( + File file = TextFileChooserFactory.getInstance().createFileChooser( UiResourceBundle.getContent(TextConstants.OPEN), null, null, 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 3fc25fc..442b5e8 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 @@ -88,12 +88,10 @@ public class RenameFile implements EventHandler { * @since 2023/8/31 21:47 */ private void handleRenameRelevanceFile(JNotepadTab jnotepadtab) { - // 创建文件选择器对话框工厂,选择文本文件对话框工厂 - FileChooserFactory factory = new TextFileChooserFactory(); // 获取原始文件对象 File file = (File) jnotepadtab.getUserData(); // 获取应用窗口并绑定 - File newFile = factory + File newFile = TextFileChooserFactory.getInstance() .createFileChooser( UiResourceBundle.getContent(TextConstants.RENAME), jnotepadtab.getText(), 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 15fc08a..b414386 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 @@ -67,23 +67,23 @@ public class SaveFile implements EventHandler { * @see LogUtil */ protected void saveTab(Class currentClass) { - FileChooserFactory factory = new TextFileChooserFactory(); JNotepadTab selectedTab = UiUtil.getJnotepadtab(); - if (selectedTab != null) { - File file = factory.createFileChooser( - UiResourceBundle.getContent(TextConstants.SAVE_AS), - selectedTab.getText(), - null, - new FileChooser.ExtensionFilter("All types", "*.*")) - .showSaveDialog(UiUtil.getAppWindow()); - if (file != null) { - LogUtil.getLogger(currentClass).info("正在保存文件:{}", file.getName()); - selectedTab.save(file); - // 将保存后的文件设置为已关联 - selectedTab.setRelevance(true); - // 更新Tab页标签上的文件名 - selectedTab.setText(file.getName()); - } + if (selectedTab == null) { + return; + } + File file = TextFileChooserFactory.getInstance().createFileChooser( + UiResourceBundle.getContent(TextConstants.SAVE_AS), + selectedTab.getText(), + null, + new FileChooser.ExtensionFilter("All types", "*.*")) + .showSaveDialog(UiUtil.getAppWindow()); + if (file != null) { + LogUtil.getLogger(currentClass).info("正在保存文件:{}", file.getName()); + selectedTab.save(file); + // 将保存后的文件设置为已关联 + selectedTab.setRelevance(true); + // 更新Tab页标签上的文件名 + selectedTab.setText(file.getName()); } } } diff --git a/src/main/java/org/jcnc/jnotepad/ui/dialog/factory/impl/TextFileChooserFactory.java b/src/main/java/org/jcnc/jnotepad/ui/dialog/factory/impl/TextFileChooserFactory.java index de35f83..c072569 100644 --- a/src/main/java/org/jcnc/jnotepad/ui/dialog/factory/impl/TextFileChooserFactory.java +++ b/src/main/java/org/jcnc/jnotepad/ui/dialog/factory/impl/TextFileChooserFactory.java @@ -13,6 +13,16 @@ import java.io.File; */ public class TextFileChooserFactory implements FileChooserFactory { + private TextFileChooserFactory() { + + } + + private static final TextFileChooserFactory INSTANCE = new TextFileChooserFactory(); + + public static TextFileChooserFactory getInstance() { + return INSTANCE; + } + /** * 创建原始文件选择对话框 *