显示打开/保存对话框java

时间:2014-12-05 13:14:12

标签: java swing jfilechooser

我正在尝试在我的程序中保存并加载.txt个文件。我有读取和写入文件的方法,但我希望用户能够使用打开/保存表单选择要保存文件的名称和位置。到目前为止我已经这样做了。

JButton btnLoad = new JButton("Carregar");

btnCarregar.addActionListener(new ActionListener() {
    private Component modalToComponent;

    public void actionPerformed(ActionEvent e) {
        JFileChooser fileChooser = new JFileChooser();

        if (fileChooser.showOpenDialog(modalToComponent) == JFileChooser.APPROVE_OPTION) {
            File file = fileChooser.getSelectedFile();
        }           
    }
});

是的,这实际上打开了表单,但在那之后,我不知道在何处以及如何使用我的方法来加载文本。我想,我应该使用file,因为它是选定的文件,但是当我将此文件发送到我的方法时,它只是不起作用。任何一个例子将不胜感激。先谢谢!

1 个答案:

答案 0 :(得分:0)

您可以从用户选择要打开的文件的位置调用方法(在actionPerformed方法的if部分中)。因此,如果您的阅读方法被称为openFile并接受File参数,您可以将' openFile(file)`作为if块中的第二个语句:

if (fileChooser.showOpenDialog(modalToComponent) == JFileChooser.APPROVE_OPTION) {
    File file = fileChooser.getSelectedFile();
    openFile(file);
}

处理打开文件的openFile方法的简单示例(在这种情况下仅打印内容)可能如下所示:

private void openFile(final File inputFile) {
    try (final BufferedReader reader = new BufferedReader(new FileReader(inputFile))) {
        String line;
        while ((line = reader.readLine()) != null) {
            System.out.println("line: " + line);
            // todo: handle line.
        }
    } catch (final IOException e) {
        e.printStackTrace();
        // todo: handle exception.
    }
}