我在fileChooser中遇到一个问题。
当fileChooser窗口出现时,我想在“文件类型”中显示.java作为默认名称,在列表中我想分别显示* .java,* .class,All File。
为此,我使用以下代码:
public class Main {
public static void main(String[] argv) throws ClassNotFoundException, InstantiationException, IllegalAccessException, UnsupportedLookAndFeelException {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
JFileChooser fileChooser = new JFileChooser(new File("."));
fileChooser.addChoosableFileFilter(new MyFilter());
fileChooser.addChoosableFileFilter(new MyFilter2());
fileChooser.setAcceptAllFileFilterUsed(true);
fileChooser.showOpenDialog(null);
System.out.println(fileChooser.getSelectedFile());
}
}
class MyFilter extends javax.swing.filechooser.FileFilter {
public boolean accept(File file) {
String filename = file.getName();
return filename.endsWith(".java");
}
public String getDescription() {
return "*.java";
}
}
class MyFilter2 extends javax.swing.filechooser.FileFilter {
public boolean accept(File file) {
String filename = file.getName();
return filename.endsWith(".class");
}
public String getDescription() {
return "*.class";
}
}
但是默认情况下这个代码在“File of type”中没有任何内容,在列表中它分别显示* .java,* .class,All File.But我想将* .java名称显示为默认名称“文件类型”。
当我更改此代码并将 fileChooser.setAcceptAllFileFilterUsed(true); 上面的 fileChooser.addChoosableFileFilter(new MyFilter()); 时,然后所有文件显示defaule名称“文件类型”。
如果您在文本编辑器中保存文本文件,则文本文档( .txt) 显示为默认文件并显示在文本文档中( .txt)和所有文件都在那里。
我在申请中要同样的事情。
我还附上照片,清楚地提供我想要的信息:
我的申请工作如下:
但我想这样:
答案 0 :(得分:4)
Customizing a JFileChooser可能值得一看,就像你描述的那样。
The official JFileChooser文档也涵盖了您的问题。
答案 1 :(得分:3)
尝试这种方式:
JFileChooser fS = new JFileChooser();
fS.setAcceptAllFileFilterUsed(false);
fS.setMultiSelectionEnabled(false);
fS.setFileFilter(new FileNameExtensionFilter(wordExtDesc, ".class"));
fS.setFileFilter(new FileNameExtensionFilter(excelExtDesc, ".java"));
反转过滤器集的顺序,添加的最后一个过滤器应显示为默认值...
答案 2 :(得分:1)
如果在添加所有过滤器和setAcceptAllFileFilterUsed后调用此方法,则默认选择所有文件:
fileChooser.setFileFilter(fileChooser.getChoosableFileFilters()[2]);
当然,选择正确的索引,以便拥有默认选择的索引
答案 3 :(得分:1)
我的方式:
//set default dir to user home
JFileChooser fileChooser = new JFileChooser(System.getProperty("user.home"));
//items in filter dropdown box
FileFilter excelType = new FileNameExtensionFilter("Excel spreadsheet (.xls)", "xls");
FileFilter wordType = new FileNameExtensionFilter("Word document (.doc)", "doc");
fileChooser.addChoosableFileFilter(excelType);
fileChooser.addChoosableFileFilter(wordType);
//default (initial) filter predefined in dropdown box
fileChooser.setFileFilter(excelType);
//initial file name
fileChooser.setSelectedFile(new File("report"));
//clear "All files" from dropdown filter box
fileChooser.setAcceptAllFileFilterUsed(false);
//open filechooser dialog
int response = fileChooser.showSaveDialog(null);
if(response == JFileChooser.APPROVE_OPTION)
{
//do somethink...
}