我只是从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
的方法?它属于哪个对象?
答案 0 :(得分:0)
只需将动作处理程序中的一行更改为
即可 statusL2.setText("GOOD STRING");