В рамках более крупного приложения я пишу класс настроек, который собирает и хранит пользовательские настройки. Этот класс является одноэлементным и создается при запуске приложения.
Чтобы принять ввод пользователя, два разных фрейма графического интерфейса создаются из ConfigSettings.java из общедоступного статического метода selectSettings (). Оба являются подклассами JFrame. Вот код для создания диалогового окна выбора файла:
private void selectFile() {
SelectFileGUI fileSelector = new SelectFileGUI();
fileSelector.setVisible(true);
synchronized(this) {
try {
wait();
} catch(Exception e) {
e.printStackTrace();
}
}
fileSelector.dispose();
}
Это нормально работает при первоначальном запуске приложения. Однако позже пользователь может изменить выбранные настройки, в том числе выбрать новый исходный файл. Это делается повторным вызовом selectSettings ().
Проблема, с которой я сталкиваюсь, заключается в том, что любая последующая попытка создать и отобразить эти компоненты графического интерфейса снова приводит к отображению нового JFrame, но с серым фоном и без отображения кнопок или других компонентов. Во время отладки мне также не удавалось напрямую создавать новые экземпляры SelectFileGUI.
Что могло быть причиной такого поведения?