Кажется, что многие ответы уже были предоставлены, и они должны работать. Однако , есть способ установить проценты:
<fx:define>
<Screen fx:factory="getPrimary" fx:id="screen" />
</fx:define>
Это поможет вам определить размеры текущего экрана, на котором отображается приложение. Теперь, когда у нас есть размеры экрана, мы можем поиграть с ним в FXML следующим образом:
<HBox fx:id="hroot" prefHeight="${screen.visualBounds.height}" prefWidth="${screen.visualBounds.width}"> Your FXML elements inside the root... </HBox>
Обратите внимание, что я использую visualBounds , так как это даст мне доступное пространство на экране, так как я не хочу перекрытия с панелью задач в Windows, например. Для полноэкранных приложений вы просто должны использовать «границы».
Теперь, чтобы перейти к вашей точке использования процентов, вы можете поиграть со значениями prefheight и prefWidth. Вы можете поместить вычисления в $ {} .
По желанию:
Если вы хотите, чтобы все ваши элементы использовали относительные размеры, просто обратитесь к ним, используя их идентификатор и свойство width или height, и сделайте свой расчет.
<VBox fx:id="VBSidebar" prefWidth="${hroot.width*0.15}" prefHeight="${hroot.height}"> more elements.. </VBox>
Надеюсь, это поможет!