2015-10-23 2 views
1

В настоящее время я отображаю всплывающее окно FileChooser в JavaFX при нажатии кнопки в главном окне. Всплывающее окно FileChooser появится в верхнем левом углу экрана. Есть ли способ сосредоточить его на экране?JavaFX - всплывающее окно с центральным файлом

FileChooser fileChooser = new FileChooser(); 
    File selectedFile = fileChooser.showOpenDialog(null); 
+2

Насколько я знаю, нет. Однако, если вы укажете в 'showOpenDialog' владельца не-' null', окно, отображающее выборщик файлов, будет соответствующим образом размещено относительно окна владельца. –

ответ

1

JavaFX не предоставляет API для позиционирования файлов.

Следующая информация относится к Mac, так как я провел некоторое тестирование на Mac, а не в Windows. Windows будет вести себя немного по-другому, но рекомендация установить владельца файла выбора еще остается в любом случае.

На Mac, когда вы устанавливаете владельца файла, который я настоятельно рекомендую, внутренняя реализация JavaFX делает его sheet. Чтобы установить владельца файла-символа, передайте его соответствующей функции show fileChooser.showOpenDialog(parentStage). Поведение по умолчанию заключается в том, что лист позиционируется по горизонтали в строке заголовка приложения и расположен непосредственно под заголовком заголовка приложения. Когда вы перетаскиваете строку заголовка приложения, лист перемещается вместе с ним. Внутренняя реализация JavaFX не публично раскрывает sheet positioning API через экземпляр Java, поэтому нет способа изменить, где находится лист выбора файлов.

Следующая часть, которую я не рекомендую: теперь, если вы не укажете стадию владельца в showOpenDialog (например, вы просто проходите null), то реализация JavaFX Mac создаст немодальный диалог, ориентированный по горизонтали на экране, и позиционируется 100 (не сетчатка, например, координированный тип JavaFX) пикселей вниз от верхней части экрана. Я не советую делать это, хотя, поскольку диалог не является модальным (например, листом) и на самом деле не совпадает с окном приложения, например, вы можете принести окно приложения на передний план и переместить его и диалог файла вокруг экрана независимо друг от друга. Также вы можете закрыть окно приложения, и диалоговое окно файла все равно будет видимым. Пользователь должен закрывать диалог выбора файла отдельно, что является своего рода ошибкой.

 Смежные вопросы

  • Нет связанных вопросов^_^