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