文件和类选择器
文件和类选择器
文件选择器
使用对话框
使用 FileChooser.chooseFiles() 方法可以让用户选择一个文件或文件夹。这个方法有多个重载方法,包括void方法和、参数是回调方法的方法(回调方法可以获取用户选择的文件)。在 macOS上,只有一个 显示本地文件的重载方法
FileChooserDescriptor 可以控制哪些文件能被选中。它的构造器需要指定 文件和文件夹是否能被选中,和是否能够多选。(可查看FileChooserDescriptorFactory )
重载 isFileSelectable() 方法,可以更细粒度的控制文件和文件夹是否能被选择。你也可以重写 getIcon(), getName() 和 getComment()方法来自定义文件的介绍。
注意:macOS中,文件选择器不支持多数的自定义配置,所以如果你需要使用自定义配置,你需要重载 chooseFiles()方法来显示标准的对话框。
通过文本(Textfield)
使用文件选择器的一种非常常见的方法是使用文本字段输入路径,并使用省略号按钮 (...) 来显示文件选择器。创建这样的控件,需要使用 TextFieldWithBrowseButton 组件,并在TextFieldWithBrowseButton 组件上使用 addBrowseFolderListener()方法来配置文件选择器。当在文本输入框里输入文件路径的时候,文件名称会自动补全。
通过树形结构
替代选择文件的UI,通过文件名称来选择文件是最好的方式,可以使用 TreeFileChooserFactory
这种对话框有2个选项卡:
一个是显示项目结构
另一种是类似于 通过Navigate -> File的弹出框
通过 createFileChooser()方法返回的选择器调用 showDialog()方法可以显示对话框,然后getSelectedFile() 方法可以获得用户选择的文件
类和包选择器
如果需要一个让用户可以选择java类的选择器,可以使用 TreeClassChooserFactory 。
它的方法,主要有以下几类
- 指定搜索范围(scope)的选择器,例如:createProjectScopeChooser() ,createAllProjectScopeChooser()等
- 包含和排除内部类的选择器
- 实现指定接口的类选择器
选择java包,使用 PackageChooserDialog
在 2019.2及以后版本里,在插件里使用java组件 ,需要在 plugin.xml 明确指定依赖 Java插件,
<depends>com.intellij.java</depends>