Java - FileDialog问题/帮助

时间:2011-12-03 22:16:20

标签: java swing load awt directory

我确信这些都是非常苛刻的问题......但我以前从未接触过FileDialog,而且我似乎无法让我的编码工作。

这是我的JButton的听众,我知道它会因为弹出FileDialog而进入:

public static class FileListener implements ActionListener{
    public void actionPerformed(ActionEvent e) {
        FileDialog fd = new FileDialog(new Frame(), "Pick Folder");
        String dir = "C:/";
        fd.setDirectory(dir);
        fd.setAlwaysOnTop(true);
        fd.setMode(FileDialog.LOAD);
        fd.setVisible(true);
        String pickedFileDir = fd.getFile();
        File folder = new File(pickedFileDir);
        File[] listOfFiles = folder.listFiles();
        numOfFiles = listOfFiles.length;
    }
}

问题是我希望它能够加载文件夹。我需要从中获取一个目录。即使我点击1个文件并按“打开”,numOfFiles也不会改变。我知道这是因为这段代码:

JLabel number = new JLabel("Files found: " + numOfFiles);

打开文件后标签不会改变。它应该从“0”变为“1”。

非常感谢,如果你能帮我解决这个问题(显然是你的“最佳答案”:))

1 个答案:

答案 0 :(得分:0)

您应该使用JFileChooser。这是你的例子:

JFileChooser jfc = new JFileChooser();
jfc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
jfc.setCurrentDirectory(new File("C:/"));
if (jfc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
    File selectedFile = jfc.getSelectedFile();
    File[] listOfFiles = selectedFile.listFiles();
}