如何使用FileDialog?

grb*_*grb 20 java awt

我创建了一个界面,我想添加一个允许用户打开文件的功能.我正在使用AWT.我不明白如何使用FileDialog.你能给我一个例子或一个很好的链接来解释这个吗?

Sal*_*lab 36

一个完整的代码示例,带有文件过滤:

FileDialog fd = new FileDialog(yourJFrame, "Choose a file", FileDialog.LOAD);
fd.setDirectory("C:\\");
fd.setFile("*.xml");
fd.setVisible(true);
String filename = fd.getFile();
if (filename == null)
  System.out.println("You cancelled the choice");
else
  System.out.println("You chose " + filename);
Run Code Online (Sandbox Code Playgroud)


Nea*_*rdt 10

要添加到@TheBronx的答案 - 对我来说,fd.setFile("*.txt");不适用于OS X.这有效:

fd.setFilenameFilter(new FilenameFilter() {
    @Override
    public boolean accept(File dir, String name) {
        return name.endsWith(".txt");
    }
});
Run Code Online (Sandbox Code Playgroud)

或者作为花哨的Java 8 lambda:

fd.setFilenameFilter((dir, name) -> name.endsWith(".txt"));
Run Code Online (Sandbox Code Playgroud)


Mic*_*rry 3

这里有一些代码示例演示如何使用它来执行各种不同的任务。

也就是说,您可能需要退一步检查 awt 是否是最适合这里工作的任务。当然,使用它而不是像 swing / swt 这样的东西有充分的理由,但如果你刚刚开始,那么 Swing,IMO 将是一个更好的选择(有更多的组件,更多的教程,并且它是一个更广泛要求使用的库这些日子。)