2016-10-02 16 views
0

我有一个VBox作为场景中的根,这个VBox包含一个MenuBar和一个BorderPane。 我想知道的是如何自动调整大小的一切(我猜只有vbox应该足够了),当窗口被调整大小时,将一个changelistener添加到scene.widthproperty属性中。如何将VBox大小设置为场景

感谢提前:)

+0

那么为什么你不能添加一个ChangeListener? –

+0

,因为在菜单栏和边界框中缺少一种方法,允许我自动调整所有内容的大小,在这种情况下,我应该调整vbox的子元素的每个元素,我只想知道是否存在特定的方法由javafx提供来执行此操作。 –

+0

菜单栏和边框的子元素有相对大小 –

回答

0

你可以利用这个黑客尝试:

@Override 
    public void start(Stage primaryStage) throws Exception 
    { 
     //Get visible bounds of the screen 
     Rectangle2D screenbounds=Screen.getPrimary().getVisualBounds(); 
     VBox root=new VBox(); 
     //Set scene's size to maximum 
     Scene scene=new Scene(root,screenbounds.getWidth(),screenbounds.getHeight()); 
     primaryStage.setScene(scene); 
     HBox one =new HBox(),two=new HBox(); 
     one.setPrefSize(400,500); 
     two.setPrefSize(400,700); 
     one.setBackground(new Background(new BackgroundFill(Color.BLUE,null,null))); 
     two.setBackground(new Background(new BackgroundFill(Color.DARKORANGE,null,null))); 
     root.getChildren().addAll(one,two); 
     primaryStage.show(); 
    } 

它使应用程序窗口中使用所有可用的屏幕空间。垂直调整给定窗口的大小时,这些框会适当缩小。

您仍然必须设置节点的首选大小以使其自动调整大小。

相关问题