Вы хотите использовать JFileChooser
объект. Он откроется и будет модальным, и будет блокироваться в потоке, который его открыл, пока вы не выберете файл.
Открыто:
JFileChooser fileChooser = new JFileChooser();
if (fileChooser.showOpenDialog(modalToComponent) == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
// load from file
}
Сохранить:
JFileChooser fileChooser = new JFileChooser();
if (fileChooser.showSaveDialog(modalToComponent) == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
// save to file
}
Есть и другие опции, которые вы можете установить, чтобы установить фильтр расширения имени файла или текущий каталог. См. API для javax.swing.JFileChooser
для деталей. На сайте Oracle также есть страница «Как использовать средства выбора файлов»:
http://download.oracle.com/javase/tutorial/uiswing/components/filechooser.html