Initial project
This commit is contained in:
103
src/main/java/com/imyeyu/fx/utils/FileSelector.java
Normal file
103
src/main/java/com/imyeyu/fx/utils/FileSelector.java
Normal file
@ -0,0 +1,103 @@
|
||||
package com.imyeyu.fx.utils;
|
||||
|
||||
import javafx.stage.FileChooser;
|
||||
import javafx.stage.Window;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 文件选择器
|
||||
*
|
||||
* @author 夜雨
|
||||
* @version 2022-04-14 19:38
|
||||
*/
|
||||
public class FileSelector {
|
||||
|
||||
/** 选择器 */
|
||||
private final FileChooser chooser;
|
||||
|
||||
/** 默认构造器 */
|
||||
public FileSelector() {
|
||||
this("./");
|
||||
}
|
||||
|
||||
/**
|
||||
* 构造文件选择器
|
||||
*
|
||||
* @param path 默认路径
|
||||
*/
|
||||
public FileSelector(String path) {
|
||||
chooser = new FileChooser();
|
||||
|
||||
File dir = new File(Objects.requireNonNullElse(path, ""));
|
||||
if (dir.exists()) {
|
||||
if (dir.isFile()) {
|
||||
chooser.setInitialDirectory(dir.getParentFile());
|
||||
} else {
|
||||
chooser.setInitialDirectory(dir);
|
||||
}
|
||||
} else {
|
||||
chooser.setInitialDirectory(new File("./"));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置标题
|
||||
*
|
||||
* @param title 标题
|
||||
*/
|
||||
public void setTitle(String title) {
|
||||
chooser.setTitle(title);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加格式限制
|
||||
*
|
||||
* @param description 说明
|
||||
* @param format 格式
|
||||
*/
|
||||
public void addFilter(String description, String... format) {
|
||||
chooser.getExtensionFilters().add(new FileChooser.ExtensionFilter(description, format));
|
||||
}
|
||||
|
||||
/**
|
||||
* 单选文件
|
||||
*
|
||||
* @param window 依赖窗体
|
||||
* @return 选择的文件
|
||||
*/
|
||||
public File single(Window window) {
|
||||
return chooser.showOpenDialog(window);
|
||||
}
|
||||
|
||||
/**
|
||||
* 多选文件
|
||||
*
|
||||
* @param window 依赖窗体
|
||||
* @return 选择的文件
|
||||
*/
|
||||
public List<File> multi(Window window) {
|
||||
return chooser.showOpenMultipleDialog(window);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存文件
|
||||
*
|
||||
* @param window 依赖窗体
|
||||
* @return 选择的文件夹
|
||||
*/
|
||||
public File save(Window window) {
|
||||
return chooser.showSaveDialog(window);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取选择器
|
||||
*
|
||||
* @return 选择器
|
||||
*/
|
||||
public FileChooser getChooser() {
|
||||
return chooser;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user