提问者:小点点

更新标签和切换场景JavaFX


我只从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();

    }
}

我想在第二场放映《好的弦乐》。我应该把文本的更新(setText())放在不同的线程中吗?

如果是这样的话,如果它不是静态的,我如何能够调用例如< code>statusL2的方法呢?它属于哪个物体?


共1个答案

匿名用户

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

            statusL2.setText("GOOD STRING");