From 571b8dd56af3eb414b57d059c5f5b7ed2cb3946a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E8=BD=B2?= Date: Sat, 12 Aug 2023 11:02:10 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=E4=BB=A3=E7=A0=81=E7=BB=93?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jcnc/jnotepad/Constants.java | 1 - src/main/java/org/jcnc/jnotepad/LunchApp.java | 11 ++-- .../jcnc/jnotepad/controller/Controller.java | 2 +- .../controller/LineFeedEventHandler.java | 1 - .../controller/NewFileEventHandler.java | 5 -- .../controller/OpenFileEventHandler.java | 4 +- .../controller/SaveFileEventHandler.java | 2 +- .../jcnc/jnotepad/tool/EncodingDetector.java | 63 ++++++++++--------- .../java/org/jcnc/jnotepad/view/View.java | 2 +- 9 files changed, 44 insertions(+), 47 deletions(-) diff --git a/src/main/java/org/jcnc/jnotepad/Constants.java b/src/main/java/org/jcnc/jnotepad/Constants.java index 5ed9079..facf66b 100644 --- a/src/main/java/org/jcnc/jnotepad/Constants.java +++ b/src/main/java/org/jcnc/jnotepad/Constants.java @@ -5,7 +5,6 @@ package org.jcnc.jnotepad; */ public class Constants { - public static final double SCREEN_WIDTH = 800; //宽度 public static final double SCREEN_LENGTH = 600; //高度 public static final String APP_NAME = "JNotepad"; //名字 diff --git a/src/main/java/org/jcnc/jnotepad/LunchApp.java b/src/main/java/org/jcnc/jnotepad/LunchApp.java index 3c679dc..6fd636c 100644 --- a/src/main/java/org/jcnc/jnotepad/LunchApp.java +++ b/src/main/java/org/jcnc/jnotepad/LunchApp.java @@ -16,14 +16,17 @@ import java.util.Objects; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +import static org.jcnc.jnotepad.view.View.initItem; +import static org.jcnc.jnotepad.view.View.initTabPane; + public class LunchApp extends Application { private static final ExecutorService threadPool = Executors.newCachedThreadPool(); public static boolean isRelevance = true; - Controller controller=new Controller(); + Controller controller = new Controller(); + @Override public void start(Stage primaryStage) { - View view=new View(); Pane root = new Pane(); double width = Constants.SCREEN_WIDTH; @@ -44,8 +47,8 @@ public class LunchApp extends Application { viewManager.initScreen(scene); // 初始化菜单项和标签栏 - view.initItem(); - View.initTabPane(); + initItem(); + initTabPane(); if (isRelevance) { // 使用线程池加载关联文件并创建文本区域 diff --git a/src/main/java/org/jcnc/jnotepad/controller/Controller.java b/src/main/java/org/jcnc/jnotepad/controller/Controller.java index cc94541..c20bb00 100644 --- a/src/main/java/org/jcnc/jnotepad/controller/Controller.java +++ b/src/main/java/org/jcnc/jnotepad/controller/Controller.java @@ -127,7 +127,7 @@ public class Controller implements ControllerInterface { autoSave(textArea); }); } catch (IOException ignored) { - // 适当地处理异常 + } } diff --git a/src/main/java/org/jcnc/jnotepad/controller/LineFeedEventHandler.java b/src/main/java/org/jcnc/jnotepad/controller/LineFeedEventHandler.java index a736e50..c14bd97 100644 --- a/src/main/java/org/jcnc/jnotepad/controller/LineFeedEventHandler.java +++ b/src/main/java/org/jcnc/jnotepad/controller/LineFeedEventHandler.java @@ -10,7 +10,6 @@ public class LineFeedEventHandler implements EventHandler { public LineFeedEventHandler(TextArea textArea) { this.textArea = textArea; } - @Override public void handle(ActionEvent event) { String text = textArea.getText(); diff --git a/src/main/java/org/jcnc/jnotepad/controller/NewFileEventHandler.java b/src/main/java/org/jcnc/jnotepad/controller/NewFileEventHandler.java index 83427d3..48083f7 100644 --- a/src/main/java/org/jcnc/jnotepad/controller/NewFileEventHandler.java +++ b/src/main/java/org/jcnc/jnotepad/controller/NewFileEventHandler.java @@ -9,11 +9,6 @@ import org.jcnc.jnotepad.ViewManager; import static org.jcnc.jnotepad.ViewManager.tabPane; public class NewFileEventHandler implements EventHandler { - - - public NewFileEventHandler() { - } - @Override public void handle(ActionEvent event) { Controller controller = new Controller(); diff --git a/src/main/java/org/jcnc/jnotepad/controller/OpenFileEventHandler.java b/src/main/java/org/jcnc/jnotepad/controller/OpenFileEventHandler.java index 72d05a1..68e3aab 100644 --- a/src/main/java/org/jcnc/jnotepad/controller/OpenFileEventHandler.java +++ b/src/main/java/org/jcnc/jnotepad/controller/OpenFileEventHandler.java @@ -11,10 +11,10 @@ import java.io.File; import static org.jcnc.jnotepad.ViewManager.tabPane; // 打开文件事件处理器 -public class OpenFileEventHandler implements EventHandler { +public class OpenFileEventHandler implements EventHandler { @Override public void handle(ActionEvent event) { - Controller controller=new Controller(); + Controller controller = new Controller(); FileChooser fileChooser = new FileChooser(); File file = fileChooser.showOpenDialog(null); if (file != null) { diff --git a/src/main/java/org/jcnc/jnotepad/controller/SaveFileEventHandler.java b/src/main/java/org/jcnc/jnotepad/controller/SaveFileEventHandler.java index bc294b8..af8b25e 100644 --- a/src/main/java/org/jcnc/jnotepad/controller/SaveFileEventHandler.java +++ b/src/main/java/org/jcnc/jnotepad/controller/SaveFileEventHandler.java @@ -14,7 +14,7 @@ import static org.jcnc.jnotepad.ViewManager.tabPane; public class SaveFileEventHandler implements EventHandler { @Override public void handle(ActionEvent event) { - Controller controller=new Controller(); + Controller controller = new Controller(); Tab selectedTab = tabPane.getSelectionModel().getSelectedItem(); if (selectedTab != null) { File file = (File) selectedTab.getUserData(); diff --git a/src/main/java/org/jcnc/jnotepad/tool/EncodingDetector.java b/src/main/java/org/jcnc/jnotepad/tool/EncodingDetector.java index ee56f9e..bc6184e 100644 --- a/src/main/java/org/jcnc/jnotepad/tool/EncodingDetector.java +++ b/src/main/java/org/jcnc/jnotepad/tool/EncodingDetector.java @@ -1,47 +1,48 @@ package org.jcnc.jnotepad.tool; import javafx.scene.control.TextArea; + import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; public class EncodingDetector { - public static String detectEncoding(TextArea textArea) { - String text = textArea.getText(); - - return detectEncoding(text); - } + public static String detectEncoding(TextArea textArea) { + String text = textArea.getText(); - public static String detectEncoding(String text) { - // 尝试常见的编码 - for (Charset charset : commonCharsets()) { - if (isValidEncoding(text, charset)) { - System.out.println(isValidEncoding(text, charset)); - return charset.name(); - } + return detectEncoding(text); } - - return "UNKNOWN"; - } - private static Charset[] commonCharsets() { - return new Charset[] { - StandardCharsets.UTF_8, - StandardCharsets.UTF_16, - StandardCharsets.UTF_16LE, - StandardCharsets.UTF_16BE, - StandardCharsets.ISO_8859_1 - }; - } + public static String detectEncoding(String text) { + // 尝试常见的编码 + for (Charset charset : commonCharsets()) { + if (isValidEncoding(text, charset)) { + System.out.println(isValidEncoding(text, charset)); + return charset.name(); + } + } - private static boolean isValidEncoding(String text, Charset encoding) { - // 尝试使用指定编码解码 - byte[] bytes = text.getBytes(encoding); - String decoded = new String(bytes, encoding); + return "UNKNOWN"; + } + + private static Charset[] commonCharsets() { + return new Charset[]{ + StandardCharsets.UTF_8, + StandardCharsets.UTF_16, + StandardCharsets.UTF_16LE, + StandardCharsets.UTF_16BE, + StandardCharsets.ISO_8859_1 + }; + } + + private static boolean isValidEncoding(String text, Charset encoding) { + // 尝试使用指定编码解码 + byte[] bytes = text.getBytes(encoding); + String decoded = new String(bytes, encoding); - // 解码后的文本相同表示编码有效 - return text.equals(decoded); - } + // 解码后的文本相同表示编码有效 + return text.equals(decoded); + } } \ No newline at end of file diff --git a/src/main/java/org/jcnc/jnotepad/view/View.java b/src/main/java/org/jcnc/jnotepad/view/View.java index 61ebbf3..269e9b9 100644 --- a/src/main/java/org/jcnc/jnotepad/view/View.java +++ b/src/main/java/org/jcnc/jnotepad/view/View.java @@ -19,7 +19,7 @@ public class View { } public static void initTabPane() { - Controller controller =new Controller(); + Controller controller = new Controller(); tabPane.getSelectionModel().selectedItemProperty().addListener((observable, oldTab, newTab) -> { if (newTab != null) {