有没有办法在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”,仅剩下文件。
答案 0 :(得分:2)
像这样使用文件过滤器。
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";
}
});