Я создал ответ для этого в следующем разделе: Как указать процент ширины в JavaFX 2 с помощью FXML?
Ниже копия для тех, кому лень туда лезть ;-)
Чтобы начать работать с процентами в самом FXML, вы можете использовать следующее:
<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. Вы можете поместить вычисления в ${}.
Необязательно:
Если вы хотите, чтобы все ваши элементы использовали относительные размеры, просто обратитесь к ним, используя их идентификатор и свойство ширины или высоты, и выполните расчет.
<VBox fx:id="VBSidebar" prefWidth="${hroot.width*0.15}" prefHeight="${hroot.height}"> more elements.. </VBox>
person
Jarrick
schedule
06.01.2017