Как some other people, которые задавали подобные вопросы, я схожу с ума, пытаясь «исправить» мой диалог JFileChooser генерации кода окно, пока я не заметил, что является генерируется, но он появляется под другими окнами и не имеют связанный значок панели задач (так что не было никакой подсказки во всем, что она существовала!).Как создать автономное диалоговое окно JFileChooser поверх других окон?
Я знаю, эти подобные вопросы:
- Bringing JFileChooser on top of all windows
- JFileChooser from a command line program and popping up Underneath all windows
... но ответы на эти вопросы кажутся слишком сложными, включая создание более GUI элементы, которые я не может верить, что потребуется.
Я также осведомлен о совете here о не смешивании консоли и интерфейсах Swing, но я хочу, чтобы вещи были максимально простыми.
Я хотел бы знать, как создать диалоговое окно JFileChooser (showOpenDialog), которая выше других окон без прибегая к созданию других элементов GUI (JPanel и т.д.).
Примечание 1: This site, по-видимому, обсуждает решение, но его трудно соблюдать.
Примечание 2: Если то, что я прошу, невозможно, информация о том, как по крайней мере дать диалоговому окну значок панели задач (опять же без необходимости иметь родителя), будет отличным.
Мой код, который сейчас создает диалоговое окно похоронена, находится здесь:
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileNameExtensionFilter;
class Client {
String currentDirectoryFolderPath = "H:\\myFolder";
javax.swing.JFileChooser jFileChooser =
new JFileChooser(currentDirectoryFolderPath);
jFileChooser.setVisible(true); //defaults to invisible?!?
javax.swing.filechooser.FileNameExtensionFilter fileExtensionFilter
= new FileNameExtensionFilter(
comma-separated values and text files",
"csv", "txt");
jFileChooser.setFileFilter(fileExtensionFilter);
//int returnVal = jFileChooser.showOpenDialog(jFileChooser);
//jFileChooser.showDialog(null, "testing 1--2--3");
//jFileChooser.requestFocusInWindow();
//jFileChooser.requestFocus();
//jFileChooser.showOpenDialog(null);
//jFileChooser.requestFocus();
int returnVal = jFileChooser.showOpenDialog(null);
if(returnVal == JFileChooser.APPROVE_OPTION) {
System.out.println("You chose to open this file: " +
jFileChooser.getSelectedFile().getName());
}
System.out.println(JFileChooser.APPROVE_OPTION);
System.out.println(jFileChooser);
}
Закомментированный код все вещи, которые я попробовал, не работали, в том числе
- разные типы запросов для фокуса до и после, вызывающего диалоговое окно, и
- , поставляющий сам объект диалогового окна, вместо того, чтобы пропустить нуль (я думал, что это стоит того.).
Почему «нет родителя»? –
В основном я просто хочу, чтобы все было просто. ... но также: если вы можете * создать * выбор файла без родительского (null), то вы должны иметь возможность создавать * полезный * выбор файла без родителя. (В противном случае, в чем смысл создания его без родителя?) –
Создайте свой собственный диалог, установите его всегда сверху и добавьте 'JFileChooser' к нему – MadProgrammer