我只从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的方法呢?它属于哪个物体?
只需将操作处理程序中的一行改为
statusL2.setText("GOOD STRING");