好日子,JavaFX的静态与非静态
为什么JavaFX的有一个问题,如果我创建一个方法之外的静态标签,但doesen't有类似球或矩形形状相同的问题。
下面的作品就好了:
static Rectangle upperBorder = new Rectangle(0, 0, 10, 10);
但是这创造了一个例外:
static Label myScore = new Label("Test");
我要创建标签的方式如下:
Label myScore = new Label("Test");
这是不“静态”关键字。
这是错误:
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
错误提示JavaFX工具包尚未初始化,这与使用“静态”变量没有直接关系(尽管如此,如果您正在制作UI控件,您只是以错误的方式进行操作)。发布一个能够产生异常的[MCVE],如果你想让某人能够找出实际出错的地方。 –
您是否从主方法扩展了'Application'并且调用了'Application#launch'? –
是的,正如上面提出的那样,错误表明您没有正确启动JavaFx应用程序,它可能与您定义的smth静态无关。 – AntJavaDev