我在JavaFX

时间:2016-05-29 16:03:08

标签: javafx

我正在使用JavaFX,当我试图展示舞台时,我有一个例外。 我怎么知道问题是什么?该行位于:this.stage.show(); 我在控制台中得到了它:

Exception in Application start method
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
    at com.sun.javafx.scene.control.skin.ChoiceBoxSkin.updatePopupItems(Unknown Source)
    at com.sun.javafx.scene.control.skin.ChoiceBoxSkin.initialize(Unknown Source)
    at com.sun.javafx.scene.control.skin.ChoiceBoxSkin.<init>(Unknown Source)
    at javafx.scene.control.ChoiceBox.createDefaultSkin(Unknown Source)
    at javafx.scene.control.Control.impl_processCSS(Unknown Source)
    at javafx.scene.Parent.impl_processCSS(Unknown Source)
    at javafx.scene.Parent.impl_processCSS(Unknown Source)
    at javafx.scene.Parent.impl_processCSS(Unknown Source)
    at javafx.scene.Node.processCSS(Unknown Source)
    at javafx.scene.Node.processCSS(Unknown Source)
    at javafx.scene.Node.processCSS(Unknown Source)
    at javafx.scene.Node.processCSS(Unknown Source)
    at javafx.scene.Node.processCSS(Unknown Source)
    at javafx.scene.Scene.doCSSPass(Unknown Source)
    at javafx.scene.Scene.access$3600(Unknown Source)
    at javafx.scene.Scene$ScenePulseListener.pulse(Unknown Source)
    at com.sun.javafx.tk.Toolkit.lambda$runPulse$31(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.tk.Toolkit.runPulse(Unknown Source)
    at com.sun.javafx.tk.Toolkit.firePulse(Unknown Source)
    at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(Unknown Source)
    at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(Unknown Source)
    at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$405(Unknown Source)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.lambda$null$149(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(Unknown Source)
    at com.sun.javafx.application.LauncherImpl.launchApplication(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at sun.launcher.LauncherHelper$FXHelper.main(Unknown Source)
Caused by: java.lang.RuntimeException: Exception in Application start method
    at com.sun.javafx.application.LauncherImpl.launchApplication1(Unknown Source)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$156(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
    at com.sun.javafx.scene.control.skin.ChoiceBoxSkin.updatePopupItems(Unknown Source)
    at com.sun.javafx.scene.control.skin.ChoiceBoxSkin.initialize(Unknown Source)
    at com.sun.javafx.scene.control.skin.ChoiceBoxSkin.<init>(Unknown Source)
    at javafx.scene.control.ChoiceBox.createDefaultSkin(Unknown Source)
    at javafx.scene.control.Control.impl_processCSS(Unknown Source)
    at javafx.scene.Parent.impl_processCSS(Unknown Source)
    at javafx.scene.Parent.impl_processCSS(Unknown Source)
    at javafx.scene.Parent.impl_processCSS(Unknown Source)
    at javafx.scene.Parent.impl_processCSS(Unknown Source)
    at javafx.scene.Parent.impl_processCSS(Unknown Source)
    at javafx.scene.Parent.impl_processCSS(Unknown Source)
    at javafx.scene.Parent.impl_processCSS(Unknown Source)
    at javafx.scene.Node.processCSS(Unknown Source)
    at javafx.scene.Scene.doCSSPass(Unknown Source)
    at javafx.scene.Scene.preferredSize(Unknown Source)
    at javafx.scene.Scene.impl_preferredSize(Unknown Source)
    at javafx.stage.Window$9.invalidated(Unknown Source)
    at javafx.beans.property.BooleanPropertyBase.markInvalid(Unknown Source)
    at javafx.beans.property.BooleanPropertyBase.set(Unknown Source)
    at javafx.stage.Window.setShowing(Unknown Source)
    at javafx.stage.Window.show(Unknown Source)
    at javafx.stage.Stage.show(Unknown Source)
    at view.implementations.View.loadConfiguration(View.java:76)
    at main.Main.start(Main.java:40)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$163(Unknown Source)
    at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$176(Unknown Source)
    at com.sun.javafx.application.PlatformImpl.lambda$null$174(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$175(Unknown Source)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.lambda$null$149(Unknown Source)
    ... 1 more
Exception running application main.Main

一点帮助?我发现问题出在ChoiceBox之一。它们是一个可观察的列表。

元素:

@FXML
private ChoiceBox<String> choiceBox1;
private ObservableList<String> observableList1;

我初始化的地方:

List<String> list1 = new ArrayList<String>();
    list1.add("1");
    list1.add("2");
    list1.add("3");
    this.observableListHash = FXCollections.observableList(list1);
this.choiceBox1.setItems(this.observableList1);
this.choiceBox1.setValue("1");

我设置了一个值,因为我想要一个预先确定的值。

1 个答案:

答案 0 :(得分:0)

您没有初始化trsize并且您将元素添加到另一个列表中。

这......

observableList1

......应该......

List<String> list1 = new ArrayList<String>();
list1.add("1");
list1.add("2");
list1.add("3");
this.observableListHash = FXCollections.observableList(list1);
this.choiceBox1.setItems(this.observableList1);
this.choiceBox1.setValue("1");