javafx的scene大小不能在控制器中设置
做个记录,备忘
遇到一个问题,点击提交,红色标识的VBox大小不能改变。问题如图,代码如下
点击后
fxml结构简化代码:
红色框体对应vboxMax
<VBox fx:id="vboxMax" prefHeight="180.0" prefWidth="341.0"> <children> <VBox fx:id="vbox" layoutX="1.0" layoutY="1.0" prefHeight="182.0" prefWidth="340.0"/> <VBox fx:id="vbox2" padding="$x2" prefWidth="340.0" spacing="5.0" visible="false"/> </children> </VBox>
控制器中
vboxMax.setPrefHeight(320); vbox.setPrefHeight(320); vbox2.setPrefHeight(140); vbox2.setVisible(true);
原以为对最外一层(vboxMax)设置大小,就能变化,然后不是这样,原因是因为最外层的VBox可看作是一个窗口,用来盛放其他面板和组件。
我原想可通过设置scene的大小来设置,但是设置不了
方法:在控制器中,vboxMax.getScene().getWindow().setHeight(345);
可改变最外层大小,即,面板所在窗体大小