文件和类选择器

走着路睡觉大约 2 分钟

文件和类选择器

文件选择器

使用对话框

使用 FileChooser.chooseFiles()open in new window 方法可以让用户选择一个文件或文件夹。这个方法有多个重载方法,包括void方法和、参数是回调方法的方法(回调方法可以获取用户选择的文件)。在 macOS上,只有一个 显示本地文件的重载方法

FileChooserDescriptoropen in new window 可以控制哪些文件能被选中。它的构造器需要指定 文件和文件夹是否能被选中,和是否能够多选。(可查看FileChooserDescriptorFactoryopen in new window

重载 isFileSelectable() 方法,可以更细粒度的控制文件和文件夹是否能被选择。你也可以重写 getIcon(), getName() 和 getComment()方法来自定义文件的介绍。

注意:macOS中,文件选择器不支持多数的自定义配置,所以如果你需要使用自定义配置,你需要重载 chooseFiles()方法来显示标准的对话框。

通过文本(Textfield)

使用文件选择器的一种非常常见的方法是使用文本字段输入路径,并使用省略号按钮 (...) 来显示文件选择器。创建这样的控件,需要使用 TextFieldWithBrowseButton 组件,并在TextFieldWithBrowseButton 组件上使用 addBrowseFolderListener()方法来配置文件选择器。当在文本输入框里输入文件路径的时候,文件名称会自动补全。

通过树形结构

替代选择文件的UI,通过文件名称来选择文件是最好的方式,可以使用 TreeFileChooserFactoryopen in new window

这种对话框有2个选项卡:

  • 一个是显示项目结构

  • 另一种是类似于 通过Navigate -> File的弹出框

通过 createFileChooser()方法返回的选择器调用 showDialog()方法可以显示对话框,然后getSelectedFile() 方法可以获得用户选择的文件

类和包选择器

如果需要一个让用户可以选择java类的选择器,可以使用 TreeClassChooserFactoryopen in new window

它的方法,主要有以下几类

  • 指定搜索范围(scope)的选择器,例如:createProjectScopeChooser() ,createAllProjectScopeChooser()等
  • 包含和排除内部类的选择器
  • 实现指定接口的类选择器

选择java包,使用 PackageChooserDialogopen in new window

在 2019.2及以后版本里,在插件里使用java组件 ,需要在 plugin.xml 明确指定依赖 Java插件,

<depends>com.intellij.java</depends>
上次编辑于:
贡献者: zhaojingbo
Loading...