JavaFX не предоставляет API для позиционирования средства выбора файлов.
Следующая информация относится к Mac, поскольку я проводил некоторые тесты на Mac, а не на Windows. Windows будет вести себя немного по-другому, но рекомендация установить владельца файлового селектора в любом случае остается.
На Mac, когда вы устанавливаете владельца для средства выбора файла, что я настоятельно рекомендую, внутренняя реализация JavaFX делает его лист. Чтобы установить владельца средства выбора файлов, передайте его соответствующей функции show fileChooser.showOpenDialog(parentStage)
. Поведение по умолчанию заключается в том, что лист располагается горизонтально по центру строки заголовка приложения и располагается непосредственно под строкой заголовка приложения. Когда вы перетаскиваете строку заголовка приложения, лист перемещается вместе с ней. Внутренняя реализация JavaFX не раскрывает публично API позиционирования листа через экземпляр Java, поэтому нет возможности изменить расположение листа выбора файлов.
Следующая часть, которую я не рекомендую: теперь, если вы не укажете стадию владельца в showOpenDialog (например, вы просто передадите null
), тогда реализация JavaFX Mac создаст немодальное диалоговое окно с горизонтальным центром на экране и позиционированием 100 (не -retina, например, тип координат JavaFX) пикселей вниз от верхней части экрана. Я не советую этого делать, так как тогда диалоговое окно не будет модальным окном (как лист) и вообще не совпадает с окном приложения, например, вы можете вывести окно приложения на передний план и переместить его и файловый диалог вокруг экрана независимы друг от друга. Также вы можете закрыть окно приложения, и диалоговое окно с файлом останется видимым. Пользователь должен отдельно закрыть диалоговое окно выбора файла, что является своего рода ошибкой.
person
jewelsea
schedule
23.10.2015
null
, вshowOpenDialog
, окно, показывающее средство выбора файлов, будет расположено соответствующим образом относительно окна владельца. - person James_D   schedule 23.10.2015