JavaFX在BorderPane中添加和删除Node

时间:2016-11-17 10:46:31

标签: java eclipse javafx fxml

我想以编程方式在BorderPane中添加和删除侧边菜单。 问题是当我添加Node时,它是不可见的。 BorderPaneStackPane在FXML文件中定义。

我想做这样的事情:

StackPane temp = (StackPane) borderPane.getChildren().get(1);
borderPane.getChildren().remove(1);
borderPane.getChildren().add(0, temp);

我尝试了borderPane.requestLayout(),但它无效。

2 个答案:

答案 0 :(得分:1)

您可以使用setRightsetLeftsetTopsetBottomsetCenter方法将Node添加到不同的部分以及{ {3}},getLeftgetTopgetBottomgetCenter检索当前分配的Node。 set方法也可用于通过传递Node值来删除当前设置的null

示例:

想象一下,你有一个BorderPaneStackPane位于右侧,你想把它移到左侧。

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());
    }