当前位置: 首页 > 知识库问答 >
问题:

JavaFX清除anchorpane中的所有节点,并在运行时添加新节点

訾朗
2023-03-14

我在运行时无法将节点添加回AnchorPane

我想做的是,当用户点击一个按钮时,当前节点存储在可观察列表中

基本上,当用户点击“客户”按钮时,我试图显示一个客户信息表单,然后显示开始时的节点。

有什么不同的方法吗?而不显示在另一个窗口?我使用了. addAll(),但这不起作用。

谢谢

private ObservableList<Node> middlePaneContent;
@FXML
private AnchorPane middlePane;
@FXML
private void setMiddlePane(){
    middlePaneContent = middlePane.getChildren();
    //middlePane.setVisible(false);
    middlePane.getChildren().clear();
}
@FXML
private void setInspectionToMiddlePane(){
    //middlePane.getChildren().addAll(middlePaneContent);
    middlePane.setVisible(true);
}

共有1个答案

董高畅
2023-03-14

您只是在middlePaneContent中存储对middlePane子列表的引用。两者都指向同一个列表。清除其中一个将清除“另一个”。

使用另一个List来存储数据:

private List<Node> middlePaneContent = new ArrayList<>();

@FXML
private AnchorPane middlePane;

@FXML
private void setMiddlePane(){
    // copy content to another list
    middlePaneContent.clear();
    middlePaneContent.addAll(middlePane.getChildren());

    //middlePane.setVisible(false);

    // clear child list
    middlePane.getChildren().clear();
}
 类似资料:
  • 我正在寻找下面输入和输出XML的XSLT(1.0)代码。 在输出XML中,C6元素下可以有任何子节点。在下面的XML中,我放了CN元素,但它可以是任何名称。 输入XML- 所需的输出XML- 先谢谢你。

  • 我创建了一个简单的应用程序来模拟JAVAFX的动态节点创建。这个应用程序能够通过单击“新建”按钮在用户需要的时候创建一个新窗口。用户可以通过单击“添加任务”按钮,然后单击对话框窗口上的“添加”按钮,将标题窗格的新节点添加到窗口中。 我想修复一个意外行为。此应用程序仅将新节点(在本例中为TitledPane)添加到最后创建的窗口。并且上一个窗口上的所有节点都将消失。 你可以看下面的视频来更好地理解我

  • 我用的是sceneBuilder。 如何清除锚泊烷 有没有办法删除AnchorPane中包含的所有节点(已经从sceneBuilder创建并填充了按钮和形状)?

  • 问题内容: 我正在使用SceneBuilder 8.0.0和JavaFX8。 我有和附加到。 当应用程序启动,并连接到。 如何删除这些节点之一? (我只知道clear()方法,该方法将从中删除所有节点)。谢谢。 问题答案: 在JavaFX中,可以使用以下命令简单地从父节点(例如AnchorPane)中删除节点 参考 所以,如果你有一个直接引用这些节点,你可以使用下面的代码删除来自: 抬头 如果由于

  • 我正在尝试构建一个在JavaFX中实现群聊的聊天应用程序。我想在边框窗格内创建一个滚动窗格,该窗格将包含用户所属的所有组。当用户加入时,需要将组图标(ImageViews)动态添加(在场景生成器中无法完成)到滚动窗格(在HBox内)。 目前,我正在使用一个SceneController类,该类负责所有阶段和场景更改。 我已经创建了一个FXML文件(使用场景生成器),其中包含一个边框窗格和一个滚动窗

  • 我已经创建了一个XSLT,我想知道如何在一组标记之间复制所有节点,并在底部添加另一个标记。我创建了XSLT,它具有确定要添加哪个标记以及应该调用什么的所有逻辑。然而,我现在遇到的问题是,我不能复制所有其他标签了。以下是有关文件: XSLT 输入 电流输出 期望的产出