2014-10-21 3 views
0

У меня есть BorderPane (также VBox и Rectangle), который я бы хотел изменить в зависимости от размера экрана. Я использую свое приложение на мониторе 14 "и 21". Есть ли способ изменить размер компонентов в соответствии с размером экрана?Изменить размер рамки в соответствии с разрешением

ответ

1

Я надеюсь, что я вас понял правильно:

Screen screen = Screen.getPrimary(); 
    Rectangle2D bounds = screen.getVisualBounds(); 

    //let the window use the left half screen: 
    stage.setX(bounds.getMinX()); 
    stage.setY(bounds.getMinY()); 
    stage.setWidth(bounds.getWidth()/2); 
    stage.setHeight(bounds.getHeight()); 

    VBox vBox = new VBox(); 
    vBox.setStyle("-fx-background-color: blue;"); 

    Rectangle rect = new Rectangle(); 
    rect.setStyle("-fx-fill: red;"); 

    vBox.getChildren().add(rect); 

    //not necessary, because always max size (root element of the scene): 
    //vBox.minWidthProperty().bind(stage.widthProperty()); 
    //vBox.minHeightProperty().bind(stage.heightProperty()); 

    rect.widthProperty().bind(vBox.widthProperty()); 
    rect.heightProperty().bind(vBox.heightProperty().divide(3)); 

    stage.setScene(new Scene(vBox)); 

    stage.show(); 

При изменении размера окна, то элементы будут автоматически изменять их самостоятельно.

+0

Есть ли способ сделать это, используя размер родительского элемента? –

+0

Это сделано с размером родительского элемента. rect является дочерним элементом vBox, а rect привязывается к размеру vBox. – rbs

Смежные вопросы