From 704e928bb4029d5a60778a4b6dac9349eaec6fc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E8=BD=B2?= Date: Mon, 14 Aug 2023 12:41:35 +0800 Subject: [PATCH] =?UTF-8?q?OpenFile.java=20=E5=A2=9E=E5=8A=A0=E6=B3=A8?= =?UTF-8?q?=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/event/handler/OpenFile.java | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/OpenFile.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/OpenFile.java index 05ea34c..b8f5fda 100644 --- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/OpenFile.java +++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/OpenFile.java @@ -11,31 +11,47 @@ import java.io.File; import static org.jcnc.jnotepad.view.manager.ViewManager.tabPane; -// 打开文件事件处理器 +/** + * 打开文件事件处理器. + */ public class OpenFile implements EventHandler { + /** + * 处理打开文件事件. + * + * @param event 事件对象 + */ @Override public void handle(ActionEvent event) { + // 获取控制器 Controller controller = new Controller(); + // 创建文件选择器 FileChooser fileChooser = new FileChooser(); + // 显示文件选择对话框,并获取选中的文件 File file = fileChooser.showOpenDialog(null); if (file != null) { + // 创建打开文件的任务 Task openFileTask = new Task<>() { @Override protected Void call() { + // 调用控制器的getText方法,读取文件内容 controller.getText(file); + // 更新编码标签 controller.upDateEncodingLabel(((TextArea) tabPane.getSelectionModel().getSelectedItem().getContent()).getText()); return null; } }; + // 设置任务成功完成时的处理逻辑 openFileTask.setOnSucceeded(e -> { - // 在需要时处理成功 + // 处理成功的逻辑 }); + // 设置任务失败时的处理逻辑 openFileTask.setOnFailed(e -> { - // 在需要时处理失败 + // 处理失败的逻辑 }); + // 创建并启动线程执行任务 Thread thread = new Thread(openFileTask); thread.start(); }