如何使JFileChooser仅显示具有某些特定名称Java的文件夹
作者:互联网
有什么方法可以在加载JFileChooser时仅显示名称为“ Hello”的文件夹.
这是我的代码:它显示所有文件夹以及扩展名为.py和.java的文件.我想添加该文件夹名称限制.
FileNameExtensionFilter filter = new FileNameExtensionFilter(
"Select Source Code To Analyze", "java","py");
jfc.setFileFilter(filter);
//jfc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
JButton btnNewButton = new JButton("Select Erroneous File"); //SELECT File Button.
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (jfc.showOpenDialog(contentPane) !=
JFileChooser.APPROVE_OPTION)
return;
File f = jfc.getSelectedFile();
当前程序输出:
我希望输出有点像这样:仅显示文件夹,其名称为“ Hello”,仅包含其余文件.
解决方法:
像这样使用文件过滤器.
javax.swing.JFileChooser jfc = new javax.swing.JFileChooser();
jfc.setFileSelectionMode(javax.swing.JFileChooser.FILES_ONLY);
jfc.setFileFilter(new javax.swing.filechooser.FileFilter(){
@Override
public boolean accept(java.io.File file){
//return (file.isDirectory() && file.getName().equals("Hello")) || !file.isDirectory();
// Get only hello folder and .py files
//return (file.isDirectory() && file.getName().equals("Hello")) || (!file.isDirectory() && file.getName().toLowerCase().endsWith(".py"));
// Get only hello folder and .java files if Hello folder is opened else .py files
return (file.isDirectory() && file.getName().equals("Hello")) ||
(!file.isDirectory() && file.getParentFile().getName().equals("Hello") &&
file.getName().toLowerCase().endsWith(".java")) ||
(!file.isDirectory() && file.getName().toLowerCase().endsWith(".py"));
}
@Override
public String getDescription() {
return "Hello Folder and Other Files";
}
});
标签:jfilechooser,java,swing 来源: https://codeday.me/bug/20191009/1878614.html