0
我有一个VBox作为场景中的根,这个VBox包含一个MenuBar和一个BorderPane。 我想知道的是如何自动调整大小的一切(我猜只有vbox应该足够了),当窗口被调整大小时,将一个changelistener添加到scene.widthproperty属性中。如何将VBox大小设置为场景
感谢提前:)
我有一个VBox作为场景中的根,这个VBox包含一个MenuBar和一个BorderPane。 我想知道的是如何自动调整大小的一切(我猜只有vbox应该足够了),当窗口被调整大小时,将一个changelistener添加到scene.widthproperty属性中。如何将VBox大小设置为场景
感谢提前:)
你可以利用这个黑客尝试:
@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();
}
它使应用程序窗口中使用所有可用的屏幕空间。垂直调整给定窗口的大小时,这些框会适当缩小。
您仍然必须设置节点的首选大小以使其自动调整大小。
那么为什么你不能添加一个ChangeListener? –
,因为在菜单栏和边界框中缺少一种方法,允许我自动调整所有内容的大小,在这种情况下,我应该调整vbox的子元素的每个元素,我只想知道是否存在特定的方法由javafx提供来执行此操作。 –
菜单栏和边框的子元素有相对大小 –