【发布时间】:2017-09-15 19:57:35
【问题描述】:
我正在尝试通过创建一个数组来创建几个 VBox,然后使用这样的 for 循环设置它们的属性:
VBox boxes[] = new VBox[5];
for(VBox box : boxes) {
box.setMaxSize(150, 150);
box.setMinSize(150, 150);
box.setAlignment(Pos.CENTER);
box.setStyle("-fx-border-style: solid; -fx-bordor-color: black; -fx-bordor-width: 1px;");
}
代码构建得很好,但每次我运行它时都会收到以下错误:
Exception in Application start method
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389)
at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
Caused by: java.lang.RuntimeException: Exception in Application start method
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(LauncherImpl.java:182)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException
at javafxhelloworld.JavaFXHelloWorld.start(JavaFXHelloWorld.java:36)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
... 1 more
Exception running application javafxhelloworld.JavaFXHelloWorld
我已经尝试使用正常的 for 循环,但它仍然给我同样的错误。我正在为此使用 Netbeans。我的问题是,发生了什么事?我如何解决它?我是 JavaFX 的新手,如果我做错了什么,请见谅。
【问题讨论】:
-
为什么不使用
ArrayList或List?此外,您为 5VBox分配空间,但实际数组中没有任何内容。 -
使用
new VBox[5]创建的数组使用null元素进行初始化。
标签: javafx