如何使用FileDialog?

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

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

 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); 

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

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

或者作为一个花哨的Java 8 lambda:

 fd.setFilenameFilter((dir, name) -> name.endsWith(".txt")); 

这里有一些代码示例演示了如何将它用于各种不同的任务。

也就是说,你可能想退后一步,检查awt是否是这里工作的最佳任务。 当然,有一些正当理由可以将它用于swing / swt之类的东西,但如果你刚开始使用Swing,那么IMO将是一个更好的选择(有更多的组件,更多的教程,它是一个更广泛要求的库,可以使用它这些日子。)