更新标签和切换场景JavaFX

时间:2017-05-19 16:58:58

标签: java javafx label

我只是从YouTube上的基本教程学习了JavaFX,并且我学会了切换这样的场景。但是在我的应用程序中没有更新我需要的标签。

我有以下代码:

import javafx.application.*;
import javafx.stage.*;
import javafx.scene.*;
import javafx.scene.layout.*;
import javafx.scene.control.*;

public class GUI extends Application {
    Stage window;
    Scene setup, results;
    Button next;
    Label statusL2; 

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        window = primaryStage;
        next = new Button("Go to the next scene");
        next.setOnAction(e -> {
                window.setScene(results);
                statusL2 = new Label("GOOD STRING");
        });
        StackPane setupLayout = new StackPane();
        setupLayout.getChildren().addAll(next);
        setup = new Scene(setupLayout, 554, 263);
        statusL2 = new Label("STRING WHICH SHOULDN'T BE SHOWN AT ANY POINT");
        VBox resultsLayout = new VBox();
        resultsLayout.getChildren().addAll(statusL2);
        results = new Scene(resultsLayout, 700, 500);
        window.setScene(setup);
        window.show();

    }
}

我想在第二个场景中显示“GOOD STRING”。我应该将文本更新(setText())放在不同的线程中吗?

如果是这样,如果它不是静态的,我怎么能调用statusL2的方法?它属于哪个对象?

1 个答案:

答案 0 :(得分:0)

只需将动作处理程序中的一行更改为

即可
            statusL2.setText("GOOD STRING");