Как найти файл в библиотеке Java Swing?

Мне было интересно, есть ли какой-то инструмент J в библиотеке Java Swing, который открывает окно браузера файлов и позволяет пользователю выбирать файл. Тогда вывод файла будет абсолютным путем к выбранному файлу.

Заранее спасибо,


person Tomek    schedule 12.11.2008    source источник


Ответы (4)


Вы можете использовать класс JFileChooser, проверьте этот пример.

person Christian C. Salvadó    schedule 12.11.2008
comment
Если вам не нужна вся гибкость JFileChooser, вместо этого следует использовать java.awt.FileDialog. Ваши пользователи OS X будут вам благодарны. FileDialog использует собственное окно выбора файлов, в то время как JFileChooser является компонентом Swing, и в нем отсутствуют сочетания клавиш и другие тонкости. - person Sam Barnum; 28.04.2009

В итоге я использовал этот быстрый фрагмент кода, который делал именно то, что мне было нужно:

final JFileChooser fc = new JFileChooser();
fc.showOpenDialog(this);

try {
    // Open an input stream
    Scanner reader = new Scanner(fc.getSelectedFile());
}
person Tomek    schedule 12.11.2008

В следующем примере создается средство выбора файла и отображается сначала как диалоговое окно открытия файла, а затем как диалоговое окно сохранения файла:

String filename = File.separator+"tmp";
JFileChooser fc = new JFileChooser(new File(filename));

// Show open dialog; this method does not return until the dialog is closed
fc.showOpenDialog(frame);
File selFile = fc.getSelectedFile();

// Show save dialog; this method does not return until the dialog is closed
fc.showSaveDialog(frame);
selFile = fc.getSelectedFile();

Вот более сложный пример, в котором создаются две кнопки, создающие и отображающие диалоговые окна выбора файлов.

// This action creates and shows a modal open-file dialog.
public class OpenFileAction extends AbstractAction {
    JFrame frame;
    JFileChooser chooser;

    OpenFileAction(JFrame frame, JFileChooser chooser) {
        super("Open...");
        this.chooser = chooser;
        this.frame = frame;
    }

    public void actionPerformed(ActionEvent evt) {
        // Show dialog; this method does not return until dialog is closed
        chooser.showOpenDialog(frame);

        // Get the selected file
        File file = chooser.getSelectedFile();
    }
};

// This action creates and shows a modal save-file dialog.
public class SaveFileAction extends AbstractAction {
    JFileChooser chooser;
    JFrame frame;

    SaveFileAction(JFrame frame, JFileChooser chooser) {
        super("Save As...");
        this.chooser = chooser;
        this.frame = frame;
    }

    public void actionPerformed(ActionEvent evt) {
        // Show dialog; this method does not return until dialog is closed
        chooser.showSaveDialog(frame);

        // Get the selected file
        File file = chooser.getSelectedFile();
    }
};
person iberck    schedule 12.11.2008

В WebStart и новом подключаемом модуле 6u10 вы можете использовать FileOpenService даже без разрешений безопасности. По понятным причинам вы получаете только содержимое файла, а не путь к файлу.

person Tom Hawtin - tackline    schedule 12.11.2008