Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在两个类JavaFX中传递字符串时出错_Java_Nullpointerexception_Javafx 2_Javafx_Parameter Passing - Fatal编程技术网

在两个类JavaFX中传递字符串时出错

在两个类JavaFX中传递字符串时出错,java,nullpointerexception,javafx-2,javafx,parameter-passing,Java,Nullpointerexception,Javafx 2,Javafx,Parameter Passing,在将字符串从一个类传递到另一个类中的函数时,我得到一个NullPointerException。我不太明白怎么了。我还试图确保我传递的字符串是否为null。但它不是空的 下面是指出异常和调用AMCHelpEditor中函数的行(此代码中的错误位于原始代码的最后一行:125): 此外,AMSEDIT在AMSEDITOR中的功能代码为: public GridPane AMCEdit(String s){ amc = am.readAllAmcName(); AMCBean sb2 = ne

在将字符串从一个类传递到另一个类中的函数时,我得到一个NullPointerException。我不太明白怎么了。我还试图确保我传递的字符串是否为null。但它不是空的

下面是指出异常和调用AMCHelpEditor中函数的行(此代码中的错误位于原始代码的最后一行:125):

此外,AMSEDIT在AMSEDITOR中的功能代码为:

public GridPane AMCEdit(String s){
  amc = am.readAllAmcName();
  AMCBean sb2 = new AMCBean();
  AMCAccessor sa = new AMCAccessor();
  sb2 = sa.getAllAmcInfoById(s); 
  String name = sb2.getAmcName();
    gridPane.setPadding(new Insets(20, 0, 20, 20));
    gridPane.setHgap(7); gridPane.setVgap(7);

    Label amc1 = new Label("Select AMC :");
    GridPane.setHalignment(smell1, HPos.RIGHT);


    cb = new ChoiceBox();
    cb.setItems(FXCollections.observableArrayList(amc));
    cb.getSelectionModel().select(name);



    cb.valueProperty().addListener(new ChangeListener() {
         @Override
        public void changed(ObservableValue observable, Object oldValue,
            Object newValue) {
            text =cb.getValue().toString();
            xyz = sm.getAllAmcInfoByName(text);
             descptn = xyz.getAmcDesc().toString();
             frmla = xyz.getAmcChemFormula().toString();
             am = xyz.getAmcId();
             setAmc(am);
             tfdesc = new TextField(descptn);          
             tffrml = new TextField(frmla);
            }
    });


     gridPane.add(amc1, 0, 0);
     gridPane.add(cb, 1, 0);

      gridPane.getColumnConstraints().addAll(
        new ColumnConstraints(150),
        new ColumnConstraints(200)
    );
            gridPane.getRowConstraints().addAll(
           new RowConstraints(30),
           new RowConstraints(), // scale
           new RowConstraints(30),
           new RowConstraints(),
           new RowConstraints(30),
           new RowConstraints(),
           new RowConstraints(30)

     );

     return gridPane;

}
显示为系统输出的错误为:

java.lang.NullPointerException
    at com.smell.component.AMCEditor.AMCEdit(AMCEditor.java:125)
    at com.smell.component.AMCHelpEditor.getTab(AMCHelpEditor.java:74)
    at com.smell.modules.ImageApi$1$1$1.handle(ImageApi.java:100)
    at com.smell.modules.ImageApi$1$1$1.handle(ImageApi.java:96)
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:69)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:217)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:170)
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:38)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:37)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:53)
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:28)
    at javafx.event.Event.fireEvent(Event.java:171)
    at javafx.scene.Node.fireEvent(Node.java:6863)
    at javafx.scene.control.Button.fire(Button.java:179)
    at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:193)
    at com.sun.javafx.scene.control.skin.SkinBase$4.handle(SkinBase.java:336)
    at com.sun.javafx.scene.control.skin.SkinBase$4.handle(SkinBase.java:329)
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:64)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:217)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:170)
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:38)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:37)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:53)
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:33)
    at javafx.event.Event.fireEvent(Event.java:171)
    at javafx.scene.Scene$MouseHandler.process(Scene.java:3324)
    at javafx.scene.Scene$MouseHandler.process(Scene.java:3164)
    at javafx.scene.Scene$MouseHandler.access$1900(Scene.java:3119)
    at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1559)
    at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2261)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:228)
    at com.sun.glass.ui.View.handleMouseEvent(View.java:528)
    at com.sun.glass.ui.View.notifyMouse(View.java:922)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:29)
    at com.sun.glass.ui.win.WinApplication$2$1.run(WinApplication.java:67)
    at java.lang.Thread.run(Thread.java:722)
'201''201'false'201'Exception in thread "JavaFX Application Thread" jfxsa-run:
系统输出与预期一致。(请参阅错误的最后几行)。如果字符串不为Null,则


请您指出错误或建议一种替代方法好吗?

我建议您对sm对象进行空检查,而不是检查字符串是否为空

sm.AMCEdit(s)

在这里,您的sm对象可能尚未初始化,然后尝试在未初始化的sm上调用方法将导致NPE


因此,请确保已对其进行初始化。

sm对象从不为空。。而且它总是被初始化的。。我也通过调试来检查它。。。
java.lang.NullPointerException
    at com.smell.component.AMCEditor.AMCEdit(AMCEditor.java:125)
    at com.smell.component.AMCHelpEditor.getTab(AMCHelpEditor.java:74)
    at com.smell.modules.ImageApi$1$1$1.handle(ImageApi.java:100)
    at com.smell.modules.ImageApi$1$1$1.handle(ImageApi.java:96)
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:69)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:217)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:170)
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:38)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:37)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:53)
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:28)
    at javafx.event.Event.fireEvent(Event.java:171)
    at javafx.scene.Node.fireEvent(Node.java:6863)
    at javafx.scene.control.Button.fire(Button.java:179)
    at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:193)
    at com.sun.javafx.scene.control.skin.SkinBase$4.handle(SkinBase.java:336)
    at com.sun.javafx.scene.control.skin.SkinBase$4.handle(SkinBase.java:329)
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:64)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:217)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:170)
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:38)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:37)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:53)
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:33)
    at javafx.event.Event.fireEvent(Event.java:171)
    at javafx.scene.Scene$MouseHandler.process(Scene.java:3324)
    at javafx.scene.Scene$MouseHandler.process(Scene.java:3164)
    at javafx.scene.Scene$MouseHandler.access$1900(Scene.java:3119)
    at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1559)
    at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2261)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:228)
    at com.sun.glass.ui.View.handleMouseEvent(View.java:528)
    at com.sun.glass.ui.View.notifyMouse(View.java:922)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:29)
    at com.sun.glass.ui.win.WinApplication$2$1.run(WinApplication.java:67)
    at java.lang.Thread.run(Thread.java:722)
'201''201'false'201'Exception in thread "JavaFX Application Thread" jfxsa-run: