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