Skip to content

Commit 385fb42

Browse files
committed
添加文件合并工具。
1 parent 84d7c3d commit 385fb42

8 files changed

Lines changed: 502 additions & 3 deletions

File tree

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,8 @@ Mac OS X x64 [xJavaFxTool-0.1.6-macosx-x64.pkg](https://dev.tencent.com/s/c5ffd1
133133

134134
45、ScanPortTool:端口扫描工具;
135135

136+
46、FileMergeTool:文件合并工具;
137+
136138
传输工具目前支持功能如下:
137139

138140
Receiver接收器:
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
package com.xwintop.xJavaFxTool.controller.littleTools;
2+
3+
import com.xwintop.xJavaFxTool.services.littleTools.FileMergeToolService;
4+
import com.xwintop.xJavaFxTool.view.littleTools.FileMergeToolView;
5+
import com.xwintop.xcore.util.javafx.FileChooserUtil;
6+
import com.xwintop.xcore.util.javafx.TooltipUtil;
7+
import javafx.application.Platform;
8+
import javafx.event.ActionEvent;
9+
import javafx.fxml.FXML;
10+
import javafx.stage.FileChooser;
11+
import lombok.Getter;
12+
import lombok.Setter;
13+
import lombok.extern.slf4j.Slf4j;
14+
15+
import javax.swing.filechooser.FileSystemView;
16+
import java.io.File;
17+
import java.net.URL;
18+
import java.util.ArrayList;
19+
import java.util.List;
20+
import java.util.ResourceBundle;
21+
22+
/**
23+
* @ClassName: FileMergeToolController
24+
* @Description: 文件合并工具
25+
* @author: xufeng
26+
* @date: 2019/6/11 17:16
27+
*/
28+
29+
@Getter
30+
@Setter
31+
@Slf4j
32+
public class FileMergeToolController extends FileMergeToolView {
33+
private FileMergeToolService fileMergeToolService = new FileMergeToolService(this);
34+
private String[] fileTypeChoiceBoxStrings = new String[]{"Excel", "CSV", "文件"};
35+
36+
@Override
37+
public void initialize(URL location, ResourceBundle resources) {
38+
initView();
39+
initEvent();
40+
initService();
41+
}
42+
43+
private void initView() {
44+
fileTypeChoiceBox.getItems().addAll(fileTypeChoiceBoxStrings);
45+
fileTypeChoiceBox.getSelectionModel().select(0);
46+
}
47+
48+
private void initEvent() {
49+
FileChooserUtil.setOnDrag(selectFileTextField, FileChooserUtil.FileType.FOLDER);
50+
FileChooserUtil.setOnDrag(saveFilePathTextField, FileChooserUtil.FileType.FOLDER);
51+
}
52+
53+
private void initService() {
54+
}
55+
56+
@FXML
57+
private void selectFileAction(ActionEvent event) {
58+
List<File> files = null;
59+
try {
60+
FileChooser fileChooser = new FileChooser();
61+
fileChooser.setTitle("请选择文件");
62+
fileChooser.setInitialDirectory(FileSystemView.getFileSystemView().getHomeDirectory());
63+
files = fileChooser.showOpenMultipleDialog(null);
64+
} catch (NullPointerException e) {
65+
log.error("选择文件错误", e);
66+
}
67+
if (files != null) {
68+
List<String> strings = new ArrayList<>();
69+
for (File file : files) {
70+
strings.add(file.getPath());
71+
}
72+
selectFileTextField.setText(String.join("|", strings));
73+
}
74+
}
75+
76+
@FXML
77+
private void saveFilePathAction(ActionEvent event) {
78+
File file = FileChooserUtil.chooseDirectory();
79+
if (file != null) {
80+
saveFilePathTextField.setText(file.getPath());
81+
}
82+
}
83+
84+
@FXML
85+
private void mergeAction(ActionEvent event) {
86+
TooltipUtil.showToast("正在解析请稍后...");
87+
new Thread(() -> {
88+
try {
89+
fileMergeToolService.mergeAction();
90+
log.info("解析完成。");
91+
Platform.runLater(() -> {
92+
TooltipUtil.showToast("解析完成。");
93+
});
94+
} catch (Exception e) {
95+
log.error("解析失败:", e);
96+
}
97+
}).start();
98+
}
99+
}

0 commit comments

Comments
 (0)