Guten Tag,JavaFX Statische vs nicht Static
Warum JavaFX ein Problem haben, wenn ich eine statische Beschriftung außerhalb eines Verfahrens zu erstellen, aber doesen't das gleiche Problem mit Formen wie eine Kugel oder ein Rechteck haben.
Folgende funktioniert gut:
static Rectangle upperBorder = new Rectangle(0, 0, 10, 10);
Aber das schafft eine Ausnahme:
static Label myScore = new Label("Test");
Ich habe das Label die folgende Art und Weise zu erstellen:
Label myScore = new Label("Test");
Dies ohne ist das Schlüsselwort "statisch"
Dies ist der Fehler:
Exception in thread "main" java.lang.ExceptionInInitializerError
at pong.Main.<clinit>(Main.java:24)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:122)
Caused by: java.lang.IllegalStateException: Toolkit not initialized
at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:273)
at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:268)
at com.sun.javafx.application.PlatformImpl.setPlatformUserAgentStylesheet(PlatformImpl.java:550)
at com.sun.javafx.application.PlatformImpl.setDefaultPlatformUserAgentStylesheet(PlatformImpl.java:512)
at javafx.scene.control.Control.<clinit>(Control.java:87)
... 4 more
Der Fehler besagt, dass das JavaFX-Toolkit nicht initialisiert wurde, was nicht direkt mit der Verwendung einer 'statischen' Variablen zusammenhängt (obwohl, imho, wenn Sie ein UI-Steuerelement erstellen, machen Sie die Dinge sowieso nur falsch). Veröffentlichen Sie ein [MCVE], das die Ausnahme generiert, wenn Sie möchten, dass jemand herausfinden kann, was eigentlich falsch läuft. –
Haben Sie 'Application' erweitert und' Application # launch' von der Hauptmethode aufgerufen? –
Ja, wie oben vorgeschlagen, zeigt der Fehler an, dass Sie die JavaFx-Anwendung nicht richtig starten, es ist möglicherweise nicht verwandt, dass Sie smth 'static' definieren – AntJavaDev