У меня есть приложение JavaFX 2.0 с FXML. Я хочу, чтобы компоненты (TextFields, ComboBoxes, layouts и т. Д.) Изменялись при изменении размера окна с приложением. Итак ...Как связать изменение размера сцены с изменением размера компонентов?
- Как написано на Oracle documentation for JavaFX, чтобы сделать что-то подобное с формами, есть несколько особых свойств формы:
При создании GUI-приложений с помощью JavaFX, вы заметите, что некоторые классы API уже реализуют свойства. Например, класс
javafx.scene.shape.Rectangle
содержит свойства дляarcHeight
,arcWidth
,height
,width
,x
иy
. Для каждого из этих свойств будут соответствующие методы, которые соответствуют ранее описанным соглашениям. . Например,getArcHeight()
,setArcHeight(double)
,arcHeightProperty()
, которые вместе указывают (для разработчиков и инструментов), что данное свойство существует *
Чтобы добавить слушателя на сцену, я должен сделать что-то вроде:
stage.resizableProperty().addListener(new ChangeListener<Boolean>(){ @Override public void changed(ObservableValue<? extends Boolean> arg0, Boolean arg1, Boolean arg2){ throw new UnsupportedOperationException("Not supported yet."); } });
Итак, есть два вопроса:
- Чтобы сделать некоторые привязки, я должен получить свою сцену в классе контроллера. Итак - как я могу получить этап в классе контроллера?
- Похоже, что элементы управления пользовательского интерфейса не имеют свойств ширины и высоты, что-то связано с ними. Или, может быть, я их не нашел.
Итак, как я могу решить свою проблему?
UPD. О сценариста Сергея Гринева: Когда я использую Ctrl + K на моем компоненте (скажите, чтобы он занимал всю область его родительского компонента) - все в порядке.
Но что, если я хочу сказать, что мой компонент занимает 50% района? Например, у меня есть вкладка с двумя VBoxes. Ширина табуляции: 100px. Ширина Vbox составляет 50px для каждого. VBox1 имеет x1 = 0 и x2 = 50 и VBox2 имеет x1 = 50 и x2 = 100. Затем я изменяю размер окна с помощью приложения JavaFX. Теперь у меня есть вкладка Width = 200px. Но мое VBoxes ширина еще = 50px: VBox1 имеет x1 = 0 и x2 = 50 и VBox2 имеет x1 = 150 и x2 = 200. И мне нужно, чтобы они были VBox1 x1 = 0 и x2 = 100 и VBox2 x1 = 100 и x2 = 200. Где значения x1 и x2 являются координатами углов VBoxes.
Как Сценарий поможет мне в этой ситуации?
Я ответил на ваш комментарий в качестве обновления для вопроса, так как я был из персонажей. –
взгляните на обновление, пожалуйста. –
Typo - GripPane – Avik