Как найти файл в библиотеке java swing? - PullRequest
33 голосов
/ 12 ноября 2008

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

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

Ответы [ 4 ]

38 голосов
/ 12 ноября 2008

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

14 голосов
/ 12 ноября 2008

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

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

try {
    // Open an input stream
    Scanner reader = new Scanner(fc.getSelectedFile());
}
7 голосов
/ 12 ноября 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();
    }
};
0 голосов
/ 12 ноября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...