Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:Show";*。爪哇语;在;类型为“的文件”;作为fileChooser中的默认值_Java_Swing_Awt_Jfilechooser - Fatal编程技术网

Java:Show";*。爪哇语;在;类型为“的文件”;作为fileChooser中的默认值

Java:Show";*。爪哇语;在;类型为“的文件”;作为fileChooser中的默认值,java,swing,awt,jfilechooser,Java,Swing,Awt,Jfilechooser,我在fileChooser中有一个问题 当fileChooser窗口出现时,我想在“类型文件”中显示.java作为默认名称,并在列表中分别显示*.java、*.class和All文件 为此,我使用以下代码: public class Main { public static void main(String[] argv) throws ClassNotFoundException, InstantiationException, IllegalAccessException, Unsuppor

我在fileChooser中有一个问题

当fileChooser窗口出现时,我想在“类型文件”中显示.java作为默认名称,并在列表中分别显示*.java、*.class和All文件

为此,我使用以下代码:

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";
  }
}
但是在这段代码中,默认情况下,“类型文件”中没有任何内容,在列表中它分别显示了*.java、*.class、All File。但是我想在“类型文件”中显示*.java名称作为默认名称

当我更改此代码并将fileChooser.setAcceptAllFileFilterUsed(true)放入时上到fileChooser.addChoosableFileFilter(新的MyFilter())然后所有文件在“类型文件”中显示文件名

如果在文本编辑器中保存文本文件,则默认情况下会显示文本文档(.txt)并在列表中显示文本文档(.txt),并且所有文件都在那里

我希望在我的应用程序中使用相同的东西

我还附上一张照片,清楚地说明了我想要什么:

我的应用程序是这样工作的:

但我想这样:

可能值得一看,因为它完全符合您的描述

文档也涵盖了您的问题。

请尝试以下方法:

JFileChooser fS = new JFileChooser();
fS.setAcceptAllFileFilterUsed(false);
fS.setMultiSelectionEnabled(false);
fS.setFileFilter(new FileNameExtensionFilter(wordExtDesc, ".class"));
fS.setFileFilter(new FileNameExtensionFilter(excelExtDesc, ".java"));

颠倒过滤器集的顺序,添加的最后一个过滤器应显示为默认值…

如果在添加所有过滤器和SetAcceptalFileFilterUsed后调用此选项,则默认情况下选择所有文件:

fileChooser.setFileFilter(fileChooser.getChoosableFileFilters()[2]);
当然,请选择正确的索引,以便在默认情况下选择所需的索引

我的方式:

//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...
}

thanx..我使用这段代码,有一个问题,它显示*.java作为默认名称,但当我选择“我的计算机”或“我的文档”时,它不会显示任何内容。对不起,我在Win7上没有这种行为,因此我无法尝试找到解决方案。可能是JFileChooser中的一个bug,我不知道。Downvoter,你能解释一下吗?(特别是在一个6个月以上的问题上)应该是“class”和“java”(不带点)。确切的答案是在打开fileChooser对话框之前使用函数fileChooser.setFileFilter。见下面的建议