2016-01-02 2 views
0

Я новичок в Javafx (и Java).Javafx: ярлык экземпляра не отображается

Я пытаюсь отобразить ярлык «название» для разных сцен. Поэтому эта метка в переменной экземпляра. Я создаю его, используя название метода().

Проблема в том, что заголовок не отображается в моих сценах. Я попытался инициализировать его на уровне класса или внутри start() или внутри scene1(). Ничего не работает, но когда я создаю локальную метку внутри метода scene1().

Заранее за вашу помощь.

пс: полный repo here при необходимости

private Label title; 

public void start(Stage primaryStage) { 
    title(); 
    scene1(); 
    scene2(); 
    [some more code...] 
} 

public Node title() { 
    title = new Label(); 
    title.setText("SNAKE"); 
    title.setTextFill(Color.YELLOW); 
    title.setFont(Font.font(STYLESHEET_MODENA, FontWeight.BOLD, 80)); 
    return title; 
} 

public Scene scene1() { 
    Label lbl1scene1 = new Label("Welcome to Game !"); 
    Label lbl2scene1 = new Label("Click to start the game"); 
    Button btnStart = new Button("Start the game now!"); 
    btnStart.setOnAction(e -> { 
     runGame(); 
    }); 
    VBox vbox1 = new VBox(title, lbl1scene1, lbl2scene1, btnStart); 
    vbox1.setAlignment(Pos.CENTER); 
    vbox1.setSpacing(10); 
    scene1 = new Scene(vbox1, width, height); 
    return scene1; 
} 
+0

Не уверен, но я подозреваю, что неплохо иметь один и тот же экземпляр узла несколько раз в сценарии. Может быть, какой-то эксперт может подтвердить, действительно ли это не рекомендуется, или если все в порядке. – Itai

+0

Узлы разрешены только один раз на графике сцены. Цитируя [документацию] (http://docs.oracle.com/javase/8/javafx/api/javafx/scene/Node.html): * «Узел может встречаться не чаще всего в графе сцены. В частности, узел должен появляться не более одного раза во всех следующих случаях: как корневой узел сцены, дочерний наблюдаемый список родителя или как клип узла. »* –

+0

Спасибо. Я забыл этот важный момент. Думаю, теперь я получил это навсегда. –

ответ

0

Я пытаюсь отобразить метку «заголовок» для различных сцен.

Обратите внимание, что узел может иметь только один родительский элемент.

Создайте несколько экземпляров, используя локальные переменные вместо поля элемента заголовка.

+0

Спасибо за это напоминание. Я действительно прочитал его. Теперь понятно. Я буду использовать локальные переменные. –

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