美文网首页
2021-05-01_FileChooser和Directory

2021-05-01_FileChooser和Directory

作者: 微笑碧落 | 来源:发表于2021-04-30 16:06 被阅读0次

0.前言

  • FileChooser,文件选择器,用来弹出一个对话框供用户选择一个或多个文件或新增一个文件。
  • DirectoryChooser,文件夹选择器。使用上和FileChooser差不多。。。唯一区别在于弹出的文件夹选择对话框只有一种方法:directoryChooser.showDialog(new Stage())
  • JavaFX的UI显示效果是基于操作系统的。。不同操作系统的显示效果不一样。所以FileChooser在其他系统的显示效果也很不一样。
  • 一个FileChooser
  • 一个DirectoryChooser

1.弹出文件选择对话框

  • 一共有如下3种方法,无论那种方法,都不会在所显示的对话框窗体消失前返回(换言之,直到用户提交或取消选择)。这3种方法的下面代码也不会被执行。
  • 3种方法都需要传入一个stage对象,当然,可以马上用new创建一个。但是,此时,主stage对象是可以操作的。不太合理,也容易出错。
  • fileChooser.showSaveDialog:保存文件对话框,允许输入文件名(新增文件)
  • fileChooser.showOpenMultipleDialog():打开多个文件,不允许新增,否则会提示文件名无效
  • fileChooser.showOpenDialog():打开单一文件,不允许新增,否则会提示文件名无效
//注意如下方法的返回值。程序需要这个返回值来下一步操作文件
public File showSaveDialog(final Window ownerWindow)
public File showOpenDialog(final Window ownerWindow)
public List<File> showOpenMultipleDialog(final Window ownerWindow)

2.设置文件对话框标题

public final void setTitle(final String value);
fileChooser.setTitle("请选择导出的文件");

3.设置初始化目录

fileChooser.setInitialDirectory(
  new File(System.getProperty("user.home"))
); 

4.设置扩展名过滤器

  • 注意,如果是用showSaveDialog方法来新增一个文件,返回的文件会自动加上扩展名。比如自动加上.jpg等。
fileChooser.getExtensionFilters().addAll(
                new FileChooser.ExtensionFilter("All Images", "*.*"),
                new FileChooser.ExtensionFilter("JPG", "*.jpg"),
                new FileChooser.ExtensionFilter("PNG", "*.png")
            );

5.FileChooser例子

    /**
     * 当用户点击导出文档按钮时,调用这个方法
     */
    @FXML
    private void handleSaveToCSV(){
        FileChooser fileChooser = new FileChooser();
        fileChooser.setTitle("请选择导出的文件");
        fileChooser.getExtensionFilters().add(
                new FileChooser.ExtensionFilter("CSV","*.csv")
        );
        File file = fileChooser.showSaveDialog(new Stage());
        if (file == null){
            return;
        }
        SaveDocTypeStoreToCSV.saveToCSV(store,file.toString());
    }

6.文件夹选择器DirectoryChooser例子

public File showDialog(final Window ownerWindow)

DirectoryChooser directoryChooser = new DirectoryChooser();
directoryChooser.showDialog(new Stage());

参考文章

1.DOC-03-28 文件选择框(File Chooser)

相关文章

网友评论

      本文标题:2021-05-01_FileChooser和Directory

      本文链接:https://www.haomeiwen.com/subject/oewarltx.html