v1.1.3 增加实时保存功能

This commit is contained in:
许轲 2023-08-08 22:00:33 +08:00
parent bf72491a1f
commit a77b2a4654
2 changed files with 38 additions and 2 deletions

View File

@ -66,6 +66,22 @@ public class JNotepad extends Application {
BorderPane.setMargin(statusLabel, new Insets(5, 10, 5, 10));
TextArea textArea = new TextArea(); // 创建新的文本编辑区
textArea.textProperty().addListener((observable, oldValue, newValue) -> {
Tab tab = tabPane.getSelectionModel().getSelectedItem();
if (tab != null) {
File file = (File) tab.getUserData();
if (file != null) {
try {
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
writer.write(newValue); // 写入新的文本内容
writer.flush();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
});
Tab tab = new Tab("新建文件 " + ++tabIndex); // 创建新的Tab页
tab.setContent(textArea);
tabPane.getTabs().add(tab);
@ -112,9 +128,29 @@ public class JNotepad extends Application {
String text = textBuilder.toString();
TextArea textArea = new TextArea(text); // 创建新的文本编辑区
// 在创建文本编辑区后添加文本变更监听器
textArea.textProperty().addListener((observable, oldValue, newValue) -> {
Tab tab = tabPane.getSelectionModel().getSelectedItem();
if (tab != null) {
File f = (File) tab.getUserData();
if (f != null) {
try {
BufferedWriter writer = new BufferedWriter(new FileWriter(f));
writer.write(newValue); // 写入新的文本内容
writer.flush();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
});
Tab tab = new Tab(file.getName()); // 创建新的Tab页
tab.setContent(textArea);
tab.setUserData(file); // 将文件对象保存到Tab页的UserData中
tabPane.getTabs().add(tab);
tabPane.getSelectionModel().select(tab);
updateStatusLabel(textArea);

View File

@ -4,5 +4,5 @@ jpackage `
-m org.jcnc.jnotepad/org.jcnc.jnotepad.JNotepad `
--runtime-image .\target\JNotepad\ `
--icon src/main/resources/img/icon.ico `
--app-version 1.1.2 `
--vendor "JCNC" `
--app-version 1.1.3 `
--vendor "JCNC"