Как открыть один или несколько файлов с помощью JFileChooser

JFileChooser - это очень хороший способ создания диалоговых окон для открытия, сохранения и просмотра файлов и папок.

Чтобы открыть диалоговое окно JFileChooser из начала, просто введите эти две строки кода:

//Создаем выбор файлов
JFileChooser fc = новый JFileChooser();
//реакция при нажатии кнопки
int return = fc.showOpenDialog(component_parent);

showOpenDialog открывает открывающее диалоговое окно. Этот метод возвращает одно из трех возможных значений, в которых упоминается, какой из вариантов выбран пользователем:
  • JFileChooser.CANCEL_OPTION: пользователь не открыт;
  • JFileChooser.APPROVE_OPTION: пользователь подтвердил открытие;
  • JFileChooser.ERROR_OPTION: произошла ошибка.
Этот код вызывает диалоговое окно, выбирает и загружает выбранный файл:

import java.awt.BorderLayout; 
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
импорт java.io.File;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

public class JFileChooserTest {
public static void main(String[] args) {
final JFrame window = new JFrame();
window.setSize(200,200);
window.setLocationRelativeTo(null);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setVisible(true);
JMenuBar jmb = новый JMenuBar();
JMenu jm = new JMenu("Ficher");
JMenuItem Open = new JMenuItem("Open");
jm.add(Открыть);
jmb.add(jm);

window.add(jmb,BorderLayout.NORTH);

JFileChooser fc = new JFileChooser();

Open.addActionListener(new ActionListener() {
@Override
public void actionPerformance(ActionEvent arg0) {
// TODO Автоматически сгенерированный метод stub
int val_retour = fc.showOpenDialog(window);

if (val_retour == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
//отображаем имя файла
System.out.println("Имя файла: "+file.getName()+"\n");
//выводим абсолютный путь к файлу
System.out.println("Абсолютный путь: "+file.getAbsolutePath()+"\n");
} else {
System.out.println("Открытие отменен\n");
}
}
});
}
}
Output:

Как открыть один или несколько файлов с помощью JFileChooser

Экран терминала после нажатия кнопки 'Открыть':

Имя файла:  decTo Binaire.cpp

Имя файла: C:\Users\VAIO\Documents\CC++\decTo Binaire.cpp
Чтобы получить выбранный файл, используйте метод getSelectedFile(). Если возвращаемое значение равно JFileChooser.APPROVE_OPTION, возвращаемое значение является экземпляром class File.

Имя файла и абсолютный путь получаются с помощью getName() и getAbsolutePath() соответственно. Если пользователь отменяет операцию, отображается сообщение с указанием cancellation.

JFileChooser позволяет выбрать один или несколько файлов. Чтобы открыть их все, мы должны модифицировать код. Изменения заключаются в объявлении экземпляра Файл который становится массивом выбранных файлов. Мы также должны попросить JFileChooser дать нам возможность выбрать несколько файлов с помощью  setMultiSelectionEnabled().

final JFileChooser fc = new JFileChooser(); 
fc.setMultiSelectionEnabled(true)
Open.addActionListener(new ActionListener() {
@Override
public void actionPerformance(ActionEvent arg0) {
// TODO Автоматически сгенерированный метод stub
int val_retour = fc.showOpenDialog(window);

if (val_retour == JFileChooser.APPROVE_OPTION) {
File[] file = fc.getSelectedFiles();
//Цикл, проходящий через набор файлов
for(File f:file){
System.out.println("Имя файла: "+f.getName()+"\n");
System.out.println("Абсолютный путь: "+f.getAbsolutePath()+"\n");
}
} else {
System.out.println("Открытие отменен\n");
}
}
});
Runtime:

Имя файла: decTo Binaire.cpp
Абсолютный путь: C:\Users\VAIO\Documents\CC++\decTo Binaire.cpp

Имя файла: decalage_tableau.cpp
Абсолютный путь: C:\Users\VAIO\Documents\CC++\decalage_tableau.cpp

Имя файла: determinant_matrice.cpp
Абсолютный путь: C:\Users\VAIO\Documents\CC++\determinant_matrice.cpp

Filename: equation-1-degre.cpp
Абсолютный путь: C:\Users\VAIO\Documents\CC++\equation-1-degre.cpp
References:
Создание компонентов JMenuBar: JMenuBar
Java Doc: метод showOpenDialog