Сегодня у меня есть кое-что, что должно быть обычной задачей, но почему-то я получаю исключения для этого. У меня такой код:
public class ExampleScene extends Scene {
public ExampleScene(Parent parent) {
super(parent,Variables.width,Variables.height);
}
public static Parent fill() {
HBox gp = new HBox();
gp.getChildren().add(new Label("hi"));
return gp;
}
}
Я им звоню так:
Parent par = ExampleScene.fill();
ExampleScene example = new ExampleScene(par);
Но это приводит к следующему исключению:
Exception in thread "main" java.lang.ExceptionInInitializerError
at de.rrcomtech.basicgui.test.ExampleScene.fill(ExampleScene.java:20)
at de.rrcomtech.basicgui.test.startASimpleWindow.main(startASimpleWindow.java:18)
Caused by: java.lang.IllegalStateException: Toolkit not initialized
at javafx.graphics/com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:396)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:391)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.setPlatformUserAgentStylesheet(PlatformImpl.java:673)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.setDefaultPlatformUserAgentStylesheet(PlatformImpl.java:635)
at javafx.controls/javafx.scene.control.Control.<clinit>(Control.java:99)
... 2 more
Отмеченная линия
gp.getChildren().add(new Label("hi"));
Я не могу понять, в чем ошибка моего кода.
Похоже, вы вызываете это до того, как был запущен инструментарий JavaFX (в частности, вы, кажется, вызываете это в методе main()). Вы должны вызвать это в нужном месте жизненного цикла приложения FX. См., Пожалуй, docs.oracle.com/javase/10/docs/api/javafx/application/…




JavaFX не инициализирован: см .: stackoverflow.com/questions/14025718/…