diff --git a/package.txt b/package.txt index a73fc32..2db8240 100644 --- a/package.txt +++ b/package.txt @@ -1,7 +1,7 @@ jpackage ` --name JNotepad ` --type app-image ` - -m org.jcnc.jnotepad/org.jcnc.jnotepad.MainApp ` + -m org.jcnc.jnotepad/org.jcnc.jnotepad.LunchApp ` --runtime-image .\target\JNotepad\ ` --icon src/main/resources/img/icon.ico ` --app-version 1.1.6 ` diff --git a/pom.xml b/pom.xml index 908ad9f..e98824d 100644 --- a/pom.xml +++ b/pom.xml @@ -49,7 +49,7 @@ default-cli - org.jcnc.jnotepad/org.jcnc.jnotepad.MainApp + org.jcnc.jnotepad/org.jcnc.jnotepad.LunchApp JNotepad JNotepad JNotepad diff --git a/src/main/java/org/jcnc/jnotepad/MainApp.java b/src/main/java/org/jcnc/jnotepad/LunchApp.java similarity index 98% rename from src/main/java/org/jcnc/jnotepad/MainApp.java rename to src/main/java/org/jcnc/jnotepad/LunchApp.java index df72cff..146ef7c 100644 --- a/src/main/java/org/jcnc/jnotepad/MainApp.java +++ b/src/main/java/org/jcnc/jnotepad/LunchApp.java @@ -16,7 +16,7 @@ import java.util.Objects; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; -public class MainApp extends Application { +public class LunchApp extends Application { private static final ExecutorService threadPool = Executors.newCachedThreadPool(); public static boolean isRelevance = true; diff --git a/src/main/java/org/jcnc/jnotepad/ViewManager.java b/src/main/java/org/jcnc/jnotepad/ViewManager.java index 1dc6e47..800a619 100644 --- a/src/main/java/org/jcnc/jnotepad/ViewManager.java +++ b/src/main/java/org/jcnc/jnotepad/ViewManager.java @@ -15,10 +15,12 @@ public class ViewManager { public static int tabIndex = 0; + public static Boolean Line = true; + // 菜单栏组件 public static MenuBar menuBar; //菜单栏 - public static Menu fileMenu; //文件菜单 - public static MenuItem newItem, openItem, saveItem, saveAsItem; //新建/打开/保存/保存至 菜单 + public static Menu fileMenu, setMenu; //文件菜单 + public static MenuItem newItem, openItem, saveItem, saveAsItem, lineFeedItem; //新建/打开/保存/保存至 菜单 // 主界面布局 public static BorderPane root; //主布局 @@ -63,12 +65,15 @@ public class ViewManager { // 创建菜单栏并添加菜单项 menuBar = new MenuBar(); fileMenu = new Menu("文件"); + setMenu = new Menu("设置"); newItem = new MenuItem("新建"); openItem = new MenuItem("打开"); saveItem = new MenuItem("保存"); saveAsItem = new MenuItem("另存为"); + lineFeedItem = new CheckMenuItem("自动换行"); fileMenu.getItems().addAll(newItem, openItem, saveItem, saveAsItem); - menuBar.getMenus().add(fileMenu); + setMenu.getItems().add(lineFeedItem); + menuBar.getMenus().addAll(fileMenu, setMenu); // 创建主界面布局 root = new BorderPane(); diff --git a/src/main/java/org/jcnc/jnotepad/controller/Controller.java b/src/main/java/org/jcnc/jnotepad/controller/Controller.java index 508f469..118ecce 100644 --- a/src/main/java/org/jcnc/jnotepad/controller/Controller.java +++ b/src/main/java/org/jcnc/jnotepad/controller/Controller.java @@ -7,7 +7,7 @@ import javafx.event.EventHandler; import javafx.scene.control.Tab; import javafx.scene.control.TextArea; import javafx.stage.FileChooser; -import org.jcnc.jnotepad.MainApp; +import org.jcnc.jnotepad.LunchApp; import java.io.*; import java.nio.charset.StandardCharsets; @@ -35,6 +35,8 @@ public class Controller { TextArea textArea = new TextArea(); // 创建新的文本编辑区 + // 自动换行 + textArea.setWrapText(true); upDateEncodingLabel(textArea.getText()); // 更新文本编码信息 updateStatusLabel(textArea); @@ -47,6 +49,22 @@ public class Controller { return textArea; } + public static class LineFeedEventHandler implements EventHandler { + private final TextArea textArea; + private boolean wrapText = true; + + public LineFeedEventHandler(TextArea textArea) { + this.textArea = textArea; + } + + @Override + public void handle(ActionEvent event) { + wrapText = !wrapText; // 切换自动换行状态 + textArea.setWrapText(true); + } + } + + // 新建文件事件处理器 public static class NewFileEventHandler implements EventHandler { @Override @@ -181,7 +199,7 @@ public class Controller { // 根据给定的文件路径打开关联文件 File file = new File(filePath); if (file.exists() && file.isFile()) { - MainApp.isRelevance = false; + LunchApp.isRelevance = false; getText(file);// 调用读取文件方法 upDateEncodingLabel(((TextArea) tabPane.getSelectionModel().getSelectedItem().getContent()).getText()); // 更新文本编码信息 } diff --git a/src/main/java/org/jcnc/jnotepad/view/View.java b/src/main/java/org/jcnc/jnotepad/view/View.java index bcf632e..1f083cb 100644 --- a/src/main/java/org/jcnc/jnotepad/view/View.java +++ b/src/main/java/org/jcnc/jnotepad/view/View.java @@ -15,6 +15,7 @@ public class View { openItem.setOnAction(new Controller.OpenFileEventHandler()); saveItem.setOnAction(new Controller.SaveFileEventHandler()); saveAsItem.setOnAction(new Controller.SaveAsFileEventHandler()); + lineFeedItem.setOnAction(new Controller.LineFeedEventHandler(new TextArea())); } public static void initTabPane() {