diff --git a/src/main/java/org/jcnc/jnotepad/Interface/ControllerInterface.java b/src/main/java/org/jcnc/jnotepad/Interface/ControllerInterface.java index 19ec32b..6607ec1 100644 --- a/src/main/java/org/jcnc/jnotepad/Interface/ControllerInterface.java +++ b/src/main/java/org/jcnc/jnotepad/Interface/ControllerInterface.java @@ -7,37 +7,119 @@ import javafx.scene.control.TextArea; import java.io.File; import java.util.List; +/** + * 控制器接口类 + * + */ public interface ControllerInterface { + /** + * 打开关联文件并创建 TextArea + * + * @param rawParameters 原始参数列表 + * @return 创建的 TextArea + */ TextArea openAssociatedFileAndCreateTextArea(List rawParameters); + /** + * 获取换行符处理事件处理程序 + * + * @param textArea 文本区域 + * @return 换行符处理事件处理程序 + */ EventHandler getLineFeedEventHandler(TextArea textArea); + /** + * 获取新建文件处理事件处理程序 + * + * @param textArea 文本区域 + * @return 新建文件处理事件处理程序 + */ EventHandler getNewFileEventHandler(TextArea textArea); + /** + * 获取打开文件处理事件处理程序 + * + * @return 打开文件处理事件处理程序 + */ EventHandler getOpenFileEventHandler(); + /** + * 获取保存文件处理事件处理程序 + * + * @return 保存文件处理事件处理程序 + */ EventHandler getSaveFileEventHandler(); + /** + * 获取另存为文件处理事件处理程序 + * + * @return 另存为文件处理事件处理程序 + */ EventHandler getSaveAsFileEventHandler(); + /** + * 自动保存 + * + * @param textArea 文本区域 + */ void autoSave(TextArea textArea); + /** + * 更新状态标签 + * + * @param textArea 文本区域 + */ void updateStatusLabel(TextArea textArea); + /** + * 打开关联文件 + * + * @param filePath 文件路径 + */ void openAssociatedFile(String filePath); + /** + * 获取文件内容 + * + * @param file 文件 + */ void getText(File file); + /** + * 更新编码标签 + * + * @param text 编码标签文本 + */ void upDateEncodingLabel(String text); + /** + * 获取光标所在行号 + * + * @param caretPosition 光标位置 + * @param text 文本内容 + * @return 行号 + */ int getRow(int caretPosition, String text); + /** + * 获取光标所在列号 + * + * @param caretPosition 光标位置 + * @param text 文本内容 + * @return 列号 + */ int getColumn(int caretPosition, String text); + /** + * 初始化 TabPane + */ void initTabPane(); + /** + * 另存为文件 + */ void saveAsFile(); } diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/LineFeed.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/LineFeed.java index 8da3d44..4b721ee 100644 --- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/LineFeed.java +++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/LineFeed.java @@ -3,13 +3,25 @@ package org.jcnc.jnotepad.controller.event.handler; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.control.TextArea; +/** + * LineFeed 类是一个事件处理程序,用于在文本区域中插入一个换行符。 + */ public class LineFeed implements EventHandler { private final TextArea textArea; + /** + * 构造函数,初始化 LineFeed 对象。 + * @param textArea 要操作的文本区域 + */ public LineFeed(TextArea textArea) { this.textArea = textArea; } + + /** + * 处理事件的方法,将一个换行符插入到文本区域的末尾。 + * @param event 触发的事件对象 + */ @Override public void handle(ActionEvent event) { String text = textArea.getText(); diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/NewFile.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/NewFile.java index 8641aba..1e36331 100644 --- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/NewFile.java +++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/NewFile.java @@ -9,6 +9,12 @@ import org.jcnc.jnotepad.view.manager.ViewManager; import static org.jcnc.jnotepad.view.manager.ViewManager.tabPane; +/** + *处理新建文件事件的事件处理程序。 + *当用户选择新建文件菜单或按钮时,将创建一个新的文本编辑区,并在Tab页中显示。 + * */ + + public class NewFile implements EventHandler { @Override public void handle(ActionEvent event) { diff --git a/src/main/java/org/jcnc/jnotepad/tool/EncodingDetector.java b/src/main/java/org/jcnc/jnotepad/tool/EncodingDetector.java index 5730da5..fe1f27d 100644 --- a/src/main/java/org/jcnc/jnotepad/tool/EncodingDetector.java +++ b/src/main/java/org/jcnc/jnotepad/tool/EncodingDetector.java @@ -6,9 +6,8 @@ import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; /** - - 编码检测工具类 - + * 编码检测工具类 + * */ public class EncodingDetector {