2016-05-29 5 views
1

Я использую JavaFX, и у меня есть исключение, когда я пытаюсь показать сцену. Как я могу узнать, в чем проблема? Строка находится в: this.stage.show(); я получил, что в консоли:NullPointerException, когда я показываю этап в JavaFX

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"); 

Я установил значение, потому что я хочу предопределил значение.

+0

Что такое значение 'this.observableList1'? – fabian

+0

Я использую list1, так что у меня в this.observableList1 есть list1. – Regular

ответ

0

Вы не инициализируете 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"); 

... должно быть ...

observableList1 = FXCollections.observableArrayList(); 
observableList1.addAll("1", "2", "3"); 
this.choiceBox1.setItems(observableList1); 
this.choiceBox1.setValue("1"); 
+0

Я написал "observableArrayList". – DVarga

+1

Я сделал это, но у меня все еще такая же проблема. Вызванный: java.lang.NullPointerException \t в com.sun.javafx.scene.control.skin.ChoiceBoxSkin.updatePopupItems (Unknown Source) \t в com.sun.javafx.scene.control.skin.ChoiceBoxSkin.initialize (Неизвестно Источник) \t по адресу com.sun.javafx.scene.control.skin.ChoiceBoxSkin. (Неизвестный источник) – Regular

+0

Отправьте полный код, пожалуйста, пожалуйста. То, что вы опубликовали, имело эту проблему. – DVarga

Смежные вопросы