我有一个类PlayerScreen
来创建一个类的图形,我想从类MainGUI
运行它,但我不断获得java.lang.IllegalStateException: This operation is permitted on the event thread only; currentThread = main
import javafx.application.Application;
import javafx.stage.Stage;
public class PlayerScreen extends Application {
@Override
public void start(Stage primaryStage){
primaryStage.setTitle("Player Screen");
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
import javafx.application.Application;
import javafx.stage.Stage;
public class MainGUI {
private static Stage stage = new Stage();
public static void main(String[] args) {
PlayerScreen screen = new PlayerScreen();
PlayerScreen.launch(args);
}
public Stage getStage() {
return stage;
}
public void setStage(Stage stage) {
MainGUI.stage = stage;
}
}
我尝试使用PlayerScreen.launch(args);
和screen.launch(args);
代替Application.launch(args);
,但我仍然遇到同样的错误。还有另一个launch
方法包含该类,但我不知道在第二个变量Application.launch(MainGUI.class, args);
args
中放入什么不被接受
答案 0 :(得分:1)
制作MainGUI extends Application
而不是PlayerScreen
。
在特殊线程上调用start(),该线程应该用于所有UI交互。此外,应用程序首先为您准备Stage
。因此,您不需要明确创建它。