2015-10-10 3 views
0

Как добавить пользовательскую панель в пользовательскую сцену в этом коде?Добавить узел в класс, который расширяет сцену

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

В вашем примере у вас нет ссылки на корневой элемент.

Не спрашивая у пользователя, вы не можете передать ссылку на корневой элемент из-за использования super().

С getRoot() возвращает родителя, вы не можете использовать getChildren() по нему по понятным причинам.

Что вы можете сделать, это напечатать getRoot() до FlowPane.

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

Я знаю это, но 'root' является частным, а' getRoot() 'имеет только метод getChildrenUnmodifiable(). – SteeveDroz

+0

@ Oltarus обновленный ответ с дополнительной информацией :) – ItachiUchiha

+0

Отлично! Хорошая идея, я об этом не думал. – SteeveDroz

Смежные вопросы