将节点添加到扩展Scene的类

时间:2015-10-10 08:22:37

标签: java javafx

如何将自定义窗格添加到该代码中的自定义场景?

public class MainScene extends Scene {
  public MainScene() {
    super(new FlowPane(), 800, 600);
  }

  public void addItem(String name) {
    Item item = new Item(name); // Item extends Pane.
    getRoot().getChildren().add(item); // That obviously doesn't work.
  }
}

1 个答案:

答案 0 :(得分:1)

在您的示例中,您没有对根元素的引用。

在没有向用户询问的情况下,由于使用super(),您无法传递根元素的引用。

由于getRoot()会返回父级,因此显而易见,您无法使用getChildren()

您可以做的是将getRoot()输入到FlowPane

public void addItem(String name) {
    Pane item = new Pane(); // Item extends Pane.
    ((FlowPane)getRoot()).getChildren().add(item);
}