FXML:包括自定义组件
FXML: Include custom component
我有扩展 HBox
的控件,称为 TablePagination
,我完全用我想包含在 FXML 文件中的代码创建它,所以当我这样做时:
<VBox fx:id="box" spacing="15" styleClass="sectionStyle">
<StackPane>
<TablePagination fx:id="pagination" StackPane.alignment="CENTER"/>
</StackPane>
</VBox>
没有出现。但是当我用这样的代码来做的时候:
pagination = new TablePagination(itemTable,items);
StackPane pane = new StackPane();
pane.setAlignment(pagination, Pos.CENTER);
pane.getChildren().add(pagination);
box.getChildren().add(pane);
我的控件得到渲染但不在中心。那我错过了什么?
在您的代码版本中,TablePagination
以 StackPane
为中心,但 TablePagination 中的节点不是。通话:
pagination.setAlignment(Pos.CENTER);
注意 StackPane.setAlignment
方法是静态的,您应该调用:
StackPane.setAlignment(pagination, Pos.CENTER);
我有扩展 HBox
的控件,称为 TablePagination
,我完全用我想包含在 FXML 文件中的代码创建它,所以当我这样做时:
<VBox fx:id="box" spacing="15" styleClass="sectionStyle">
<StackPane>
<TablePagination fx:id="pagination" StackPane.alignment="CENTER"/>
</StackPane>
</VBox>
没有出现。但是当我用这样的代码来做的时候:
pagination = new TablePagination(itemTable,items);
StackPane pane = new StackPane();
pane.setAlignment(pagination, Pos.CENTER);
pane.getChildren().add(pagination);
box.getChildren().add(pane);
我的控件得到渲染但不在中心。那我错过了什么?
在您的代码版本中,TablePagination
以 StackPane
为中心,但 TablePagination 中的节点不是。通话:
pagination.setAlignment(Pos.CENTER);
注意 StackPane.setAlignment
方法是静态的,您应该调用:
StackPane.setAlignment(pagination, Pos.CENTER);