我想以编程方式在BorderPane
中添加和删除侧边菜单。
问题是当我添加Node
时,它是不可见的。
BorderPane
和StackPane
在FXML文件中定义。
我想做这样的事情:
StackPane temp = (StackPane) borderPane.getChildren().get(1);
borderPane.getChildren().remove(1);
borderPane.getChildren().add(0, temp);
我尝试了borderPane.requestLayout()
,但它无效。
答案 0 :(得分:1)
您可以使用setRight
或setLeft
,setTop
,setBottom
,setCenter
方法将Node
添加到不同的部分以及{ {3}},getLeft
,getTop
,getBottom
,getCenter
检索当前分配的Node
。 set方法也可用于通过传递Node
值来删除当前设置的null
。
示例:强>
想象一下,你有一个BorderPane
,StackPane
位于右侧,你想把它移到左侧。
StackPane temp = (StackPane) borderPane.getRight(); // Casting is unnecessary
borderPane.setRight(null);
borderPane.setLeft(temp);
答案 1 :(得分:0)
从边框窗格中删除节点很简单。声明边框窗格ID,并使用该ID选择子节点,并通过以下代码删除指定的边(左,右,上,下)。
@FXML
private BorderPane borderPane;
@Override
public void initialize(URL location, ResourceBundle resources) {
borderPane.getChildren().remove(borderPane.getLeft());
borderPane.getChildren().remove(borderPane.getRight());
}