From 8ed95cb911e1fc91fe1d02693f3cd3c5babab464 Mon Sep 17 00:00:00 2001 From: ZZHow <109335896+ZZHow1024@users.noreply.github.com> Date: Thu, 5 Sep 2024 21:50:30 +0800 Subject: [PATCH 01/10] feat: Add support for file drag-and-drop and file count statistics --- .../controller/MainController.java | 27 +++++++++++++++++++ .../com/zzhow/magicencoding/ui/main-view.fxml | 10 ++++--- 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/zzhow/magicencoding/controller/MainController.java b/src/main/java/com/zzhow/magicencoding/controller/MainController.java index 590a6b1..027f172 100644 --- a/src/main/java/com/zzhow/magicencoding/controller/MainController.java +++ b/src/main/java/com/zzhow/magicencoding/controller/MainController.java @@ -6,8 +6,14 @@ import com.zzhow.magicencoding.utils.MessageBox; import javafx.fxml.FXML; import javafx.scene.control.ChoiceBox; +import javafx.scene.control.Label; import javafx.scene.control.ListView; import javafx.scene.control.TextField; +import javafx.scene.input.DragEvent; +import javafx.scene.input.TransferMode; + +import java.io.File; +import java.util.List; public class MainController { @@ -24,6 +30,8 @@ public class MainController { private TextField endWithTextField; @FXML private ListView filesListView; + @FXML + private Label fileNumber; public void initialize() { originChoiceBox.getItems().addAll("GBK", "UTF-8"); @@ -37,11 +45,29 @@ public void clearFilesPath() { filesListView.setItems(null); } + @FXML + private void handleDragOver(DragEvent event) { + if (event.getGestureSource() != event.getTarget() // 是否从外部拖拽 + && event.getDragboard().hasFiles()) { // 是否拖拽了文件 + event.acceptTransferModes(TransferMode.COPY_OR_MOVE); // 接受拖拽的文件 + } + event.consume(); + } + + @FXML + private void onDragFile(DragEvent event) { + List files = event.getDragboard().getFiles(); + if (!files.isEmpty()) { + pathTextField.setText(files.get(0).getAbsolutePath()); + } + } + @FXML private void onReset() { this.clearFilesPath(); pathTextField.setText(""); endWithTextField.setText(""); + fileNumber.setText("文件数目:0"); } @FXML @@ -51,6 +77,7 @@ private void onFindFiles() { String endWith = endWithTextField.getText(); filesListView.setItems(fileService.findFiles(absolutePath, endWith)); + fileNumber.setText("文件数目:" + fileService.getTargetFileList().size()); } @FXML diff --git a/src/main/resources/com/zzhow/magicencoding/ui/main-view.fxml b/src/main/resources/com/zzhow/magicencoding/ui/main-view.fxml index 29bdcc6..d853dab 100644 --- a/src/main/resources/com/zzhow/magicencoding/ui/main-view.fxml +++ b/src/main/resources/com/zzhow/magicencoding/ui/main-view.fxml @@ -13,27 +13,29 @@ - +