我正在使用Java 8 / JavaFX在NetBeans 8中工作。
我有一个基于fxml文件启动主阶段的应用程序。
有一个菜单选项供用户根据要求启动第二阶段。打开窗口的功能如下所示:
@FXML
private void openChildWindow(ActionEvent event) throws Exception {
Group root = new Group();
Stage stage = new Stage();
AnchorPane frame = FXMLLoader.load(getClass().getResource("second.fxml"));
root.getChildren().add(frame);
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
second.fxml的内容如下所示(在所有import语句之后):
<AnchorPane id="AnchorPane" prefHeight="680.0" prefWidth="1020.0" xmlns:fx="http://javafx.com/fxml/1" >
<stylesheets><URL value="@css/mycss.css" /></stylesheets>
<children>
<TabPane AnchorPane.leftAnchor="0.0" AnchorPane.topAnchor="10.0"
AnchorPane.bottomAnchor="10.0" AnchorPane.rightAnchor="0.0" >
<Tab text="A" closable="false"></Tab>
</TabPane>
</children>
</AnchorPane>
问题:当我点击第二个窗口的一角来拖动并调整其大小时,内容没有调整大小。我缺少什么或我需要什么才能自动调整大小?
答案 0 :(得分:3)
Group
不能直接调整大小,如其javadoc中所述。因此,当窗口从角落调整大小时,它不会被场景调整大小。您可以使用Pane
的子类代替。例如,尝试使用
VBox root = new VBox();
答案 1 :(得分:2)
请将Group
直接放入AnchorPane
Scene
。
@FXML
private void openChildWindow(ActionEvent event) throws Exception {
Stage stage = new Stage();
AnchorPane frame = FXMLLoader.load(getClass().getResource("second.fxml"));
Scene scene = new Scene(frame );
stage.setScene(scene);
stage.show();
}
答案 2 :(得分:0)
Group
无法调整大小,“一个小组将承担其子女的集体界限,并且不能直接调整大小。” http://docs.oracle.com/javafx/2/api/javafx/scene/Group.html
将Group
替换为不同的布局,例如StackPane
或BorderPane
。
如果我们只阅读了文档,我就会遇到同样的问题。 :d