增加自动换行功能

This commit is contained in:
许轲 2023-08-11 07:02:00 +08:00
parent beb703fc22
commit f979240c85
6 changed files with 32 additions and 8 deletions

View File

@ -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 `

View File

@ -49,7 +49,7 @@
<!-- Default configuration for running with: mvn clean javafx:run -->
<id>default-cli</id>
<configuration>
<mainClass>org.jcnc.jnotepad/org.jcnc.jnotepad.MainApp</mainClass>
<mainClass>org.jcnc.jnotepad/org.jcnc.jnotepad.LunchApp</mainClass>
<launcher>JNotepad</launcher>
<jlinkZipName>JNotepad</jlinkZipName>
<jlinkImageName>JNotepad</jlinkImageName>

View File

@ -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;

View File

@ -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();

View File

@ -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<ActionEvent> {
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<ActionEvent> {
@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()); // 更新文本编码信息
}

View File

@ -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() {