增加注释
This commit is contained in:
parent
704e928bb4
commit
929ae12fbf
@ -44,13 +44,6 @@ public interface ControllerInterface {
|
||||
*/
|
||||
EventHandler<ActionEvent> getOpenFileEventHandler();
|
||||
|
||||
/**
|
||||
* 获取保存文件处理事件处理程序
|
||||
*
|
||||
* @return 保存文件处理事件处理程序
|
||||
*/
|
||||
EventHandler<ActionEvent> getSaveFileEventHandler();
|
||||
|
||||
/**
|
||||
* 获取另存为文件处理事件处理程序
|
||||
*
|
||||
@ -117,9 +110,4 @@ public interface ControllerInterface {
|
||||
*/
|
||||
void initTabPane();
|
||||
|
||||
/**
|
||||
* 另存为文件
|
||||
*/
|
||||
void saveAsFile();
|
||||
|
||||
}
|
||||
|
||||
@ -3,10 +3,12 @@ package org.jcnc.jnotepad.controller.event.handler;
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.event.EventHandler;
|
||||
import javafx.scene.control.TextArea;
|
||||
/**
|
||||
* LineFeed 类是一个事件处理程序,用于在文本区域中插入一个换行符。
|
||||
*/
|
||||
|
||||
/**
|
||||
* 换行程序。
|
||||
* <p>
|
||||
* 用于在文本区域中插入一个换行符。
|
||||
*/
|
||||
public class LineFeed implements EventHandler<ActionEvent> {
|
||||
private final TextArea textArea;
|
||||
|
||||
|
||||
@ -10,22 +10,38 @@ import org.jcnc.jnotepad.view.manager.ViewManager;
|
||||
import static org.jcnc.jnotepad.view.manager.ViewManager.tabPane;
|
||||
|
||||
/**
|
||||
*处理新建文件事件的事件处理程序。
|
||||
*当用户选择新建文件菜单或按钮时,将创建一个新的文本编辑区,并在Tab页中显示。
|
||||
* */
|
||||
|
||||
|
||||
* 新建文件事件的事件处理程序。
|
||||
* <p>
|
||||
* 当用户选择新建文件时候,将创建一个新的文本编辑区,并在Tab页中显示。
|
||||
*/
|
||||
public class NewFile implements EventHandler<ActionEvent> {
|
||||
/**
|
||||
* 处理新建文件事件。
|
||||
*
|
||||
* @param event 事件对象
|
||||
*/
|
||||
@Override
|
||||
public void handle(ActionEvent event) {
|
||||
// 获取控制器
|
||||
Controller controller = new Controller();
|
||||
TextArea textArea = new TextArea(); // 创建新的文本编辑区
|
||||
Tab tab = new Tab("新建文本 " + ++ViewManager.tabIndex); // 创建新的Tab页
|
||||
|
||||
// 创建一个新的文本编辑区
|
||||
TextArea textArea = new TextArea();
|
||||
|
||||
// 创建一个新的Tab页
|
||||
Tab tab = new Tab("新建文本 " + ++ViewManager.tabIndex);
|
||||
tab.setContent(textArea);
|
||||
|
||||
// 将Tab页添加到TabPane中
|
||||
tabPane.getTabs().add(tab);
|
||||
|
||||
// 将新建的Tab页设置为选中状态
|
||||
tabPane.getSelectionModel().select(tab);
|
||||
|
||||
// 更新状态标签
|
||||
controller.updateStatusLabel(textArea);
|
||||
|
||||
// 更新编码信息
|
||||
controller.upDateEncodingLabel(textArea.getText()); // 更新文本编码信息
|
||||
controller.upDateEncodingLabel(textArea.getText());
|
||||
}
|
||||
}
|
||||
@ -12,11 +12,13 @@ import java.io.File;
|
||||
import static org.jcnc.jnotepad.view.manager.ViewManager.tabPane;
|
||||
|
||||
/**
|
||||
* 打开文件事件处理器.
|
||||
* 打开文件的事件处理程序。
|
||||
* <p>
|
||||
* 当用户选择打开文件时,将创建一个新的文本编辑区,并在Tab页中显示。
|
||||
*/
|
||||
public class OpenFile implements EventHandler<ActionEvent> {
|
||||
/**
|
||||
* 处理打开文件事件.
|
||||
* 处理打开文件事件。
|
||||
*
|
||||
* @param event 事件对象
|
||||
*/
|
||||
|
||||
@ -14,7 +14,20 @@ import java.io.IOException;
|
||||
|
||||
import static org.jcnc.jnotepad.view.manager.ViewManager.tabPane;
|
||||
|
||||
/**
|
||||
* 保存文件事件处理器。
|
||||
* <p>
|
||||
* 当用户选择保存文件时,当用户选择另存为文件菜单或按钮时,
|
||||
* 会弹出一个保存文件对话框,用户选择保存位置和文件名后,
|
||||
* 将当前文本编辑区的内容保存到指定文件中,
|
||||
* 并更新Tab页上的文件名和UserData。
|
||||
*/
|
||||
public class SaveAsFile implements EventHandler<ActionEvent> {
|
||||
/**
|
||||
* 处理保存文件事件。
|
||||
*
|
||||
* @param event 事件对象
|
||||
*/
|
||||
@Override
|
||||
public void handle(ActionEvent event) {
|
||||
Controller controller = new Controller();
|
||||
|
||||
@ -1,37 +0,0 @@
|
||||
package org.jcnc.jnotepad.controller.event.handler;
|
||||
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.event.EventHandler;
|
||||
import javafx.scene.control.Tab;
|
||||
import javafx.scene.control.TextArea;
|
||||
import org.jcnc.jnotepad.controller.manager.Controller;
|
||||
|
||||
import java.io.*;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
import static org.jcnc.jnotepad.view.manager.ViewManager.tabPane;
|
||||
|
||||
// 保存文件事件处理器
|
||||
public class SaveFile implements EventHandler<ActionEvent> {
|
||||
@Override
|
||||
public void handle(ActionEvent event) {
|
||||
Controller controller = new Controller();
|
||||
Tab selectedTab = tabPane.getSelectionModel().getSelectedItem();
|
||||
if (selectedTab != null) {
|
||||
File file = (File) selectedTab.getUserData();
|
||||
if (file == null) {
|
||||
controller.saveAsFile();
|
||||
} else {
|
||||
try {
|
||||
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), StandardCharsets.UTF_8));
|
||||
TextArea textArea = (TextArea) selectedTab.getContent();
|
||||
String text = textArea.getText();
|
||||
writer.write(text);
|
||||
writer.flush();
|
||||
writer.close();
|
||||
} catch (IOException ignored) {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -64,30 +64,11 @@ public class Controller implements ControllerInterface {
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public EventHandler<ActionEvent> getSaveFileEventHandler() {
|
||||
return new SaveFile();
|
||||
}
|
||||
|
||||
@Override
|
||||
public EventHandler<ActionEvent> getSaveAsFileEventHandler() {
|
||||
return new SaveAsFile();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveAsFile() {
|
||||
Tab selectedTab = tabPane.getSelectionModel().getSelectedItem();
|
||||
if (selectedTab != null) {
|
||||
FileChooser fileChooser = new FileChooser();
|
||||
fileChooser.setInitialFileName("新建文本");
|
||||
fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("文本文档", "*.txt"));
|
||||
File file = fileChooser.showSaveDialog(null);
|
||||
if (file != null) {
|
||||
saveFile();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateStatusLabel(TextArea textArea) {
|
||||
int caretPosition = textArea.getCaretPosition();
|
||||
@ -217,7 +198,4 @@ public class Controller implements ControllerInterface {
|
||||
thread.start();
|
||||
}
|
||||
|
||||
private void saveFile() {
|
||||
new SaveFile();
|
||||
}
|
||||
}
|
||||
|
||||
@ -7,7 +7,6 @@ import java.nio.charset.StandardCharsets;
|
||||
|
||||
/**
|
||||
* 编码检测工具类
|
||||
*
|
||||
*/
|
||||
public class EncodingDetector {
|
||||
|
||||
|
||||
@ -12,7 +12,6 @@ public class View {
|
||||
// 初始化菜单项的事件处理器
|
||||
newItem.setOnAction(new Controller().getNewFileEventHandler(new TextArea()));
|
||||
openItem.setOnAction(new Controller().getOpenFileEventHandler());
|
||||
saveItem.setOnAction(new Controller().getSaveFileEventHandler());
|
||||
saveAsItem.setOnAction(new Controller().getSaveAsFileEventHandler());
|
||||
lineFeedItem.setOnAction(new Controller().getLineFeedEventHandler(new TextArea()));
|
||||
|
||||
|
||||
@ -20,7 +20,7 @@ public class ViewManager {
|
||||
// 菜单栏组件
|
||||
public static MenuBar menuBar; //菜单栏
|
||||
public static Menu fileMenu, setMenu; //文件菜单
|
||||
public static MenuItem newItem, openItem, saveItem, saveAsItem; //新建/打开/保存/保存至 菜单
|
||||
public static MenuItem newItem, openItem, saveAsItem; //新建/打开/保存/保存至 菜单
|
||||
|
||||
public static CheckMenuItem lineFeedItem;
|
||||
// 主界面布局
|
||||
@ -69,11 +69,10 @@ public class ViewManager {
|
||||
setMenu = new Menu("设置");
|
||||
newItem = new MenuItem("新建");
|
||||
openItem = new MenuItem("打开");
|
||||
saveItem = new MenuItem("保存");
|
||||
saveAsItem = new MenuItem("另存为");
|
||||
lineFeedItem = new CheckMenuItem("自动换行");
|
||||
lineFeedItem.selectedProperty().set(true);
|
||||
fileMenu.getItems().addAll(newItem, openItem, saveItem, saveAsItem);
|
||||
fileMenu.getItems().addAll(newItem, openItem, saveAsItem);
|
||||
setMenu.getItems().add(lineFeedItem);
|
||||
|
||||
menuBar.getMenus().addAll(fileMenu, setMenu);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user