Java 调用Window.setVisible()时出现NullPointerException
我有一个很重的GUI应用程序。每次启动时,我都会从EventDispatchThread获得以下堆栈跟踪:Java 调用Window.setVisible()时出现NullPointerException,java,swing,nullpointerexception,window,Java,Swing,Nullpointerexception,Window,我有一个很重的GUI应用程序。每次启动时,我都会从EventDispatchThread获得以下堆栈跟踪: 14:30:04:115 >> java.lang.NullPointerException at com.mercury.ftjadin.support.jfc11.cs.JTableCS$CellEditorListenerRegistrar.addListener(JTableCS.java:151) at com.mercury.ftjadin.infr
14:30:04:115 >> java.lang.NullPointerException
at com.mercury.ftjadin.support.jfc11.cs.JTableCS$CellEditorListenerRegistrar.addListener(JTableCS.java:151)
at com.mercury.ftjadin.infra.abstr.ObjectCS.registerListeners(ObjectCS.java:2736)
at com.mercury.ftjadin.infra.DefaultCustomClassManager.onCreate(DefaultCustomClassManager.java:575)
at com.mercury.ftjadin.hooks.WToolkitHook.onCreate(WToolkitHook.java:23)
at java.awt.Toolkit.createComponent(Toolkit.java)
at java.awt.Component.addNotify(Component.java:6650)
at java.awt.Container.addNotify(Container.java:2565)
at javax.swing.JComponent.addNotify(JComponent.java:4693)
at javax.swing.JTable.addNotify(JTable.java:683)
at java.awt.Container.addNotify(Container.java:2576)
at javax.swing.JComponent.addNotify(JComponent.java:4693)
at java.awt.Container.addNotify(Container.java:2576)
at javax.swing.JComponent.addNotify(JComponent.java:4693)
at java.awt.Container.addNotify(Container.java:2576)
at javax.swing.JComponent.addNotify(JComponent.java:4693)
at java.awt.Container.addNotify(Container.java:2576)
at javax.swing.JComponent.addNotify(JComponent.java:4693)
at java.awt.Container.addNotify(Container.java:2576)
at javax.swing.JComponent.addNotify(JComponent.java:4693)
at java.awt.Container.addNotify(Container.java:2576)
at javax.swing.JComponent.addNotify(JComponent.java:4693)
at java.awt.Container.addNotify(Container.java:2576)
at javax.swing.JComponent.addNotify(JComponent.java:4693)
at java.awt.Container.addNotify(Container.java:2576)
at javax.swing.JComponent.addNotify(JComponent.java:4693)
at java.awt.Container.addNotify(Container.java:2576)
at javax.swing.JComponent.addNotify(JComponent.java:4693)
at javax.swing.JRootPane.addNotify(JRootPane.java:738)
at java.awt.Container.addNotify(Container.java:2576)
at java.awt.Window.addNotify(Window.java:664)
at java.awt.Frame.addNotify(Frame.java:470)
at java.awt.Window.show(Window.java:860)
at java.awt.Component.show(Component.java:1591)
at java.awt.Component.setVisible(Component.java:1543)
at java.awt.Window.setVisible(Window.java:843)
at ... my_classes_stack_trace
我试图在java的源代码中调试它,以发现我做错了什么,需要的对象是null
,但我被卡住了,因为我没有com.mercury.ftjadin
包的源代码
顺便说一句,不管这个异常,应用程序运行正常,但我还是想解决这个问题
有人熟悉这个问题吗 检查空对象 例如:
if(object!=null)
{
//enter code here
}
试一试
这个问题与QTP的java插件有关
由于我已删除此插件,因此未引发异常。您能发布代码吗?也许您在javax.swing.JComponent.addNotify(JComponent.java:4693)有一个循环(在java.awt.Container.addNotify(Container.java:2576)正如我所说的,它是一个很重的GUI应用程序,包含(仅GUI部分)几十个类。问题是,在编写第一个类时,我完全是一个java初学者,我可能会做一些糟糕的编程,我现在正试图追溯到这一点。所以,不。我想发布整个代码是不可能的……我会检查您在GUI中使用的JTableCS,并检查在向其中添加侦听器时是否存在任何问题(以防您可以访问它)。我没有访问JTableCS源代码的权限。jar可以在网络上使用。查看窗口非常有效。只有当
窗口
中包含com.mercury.ftjadin.support.jfc11.cs.JTableCS
实例时,才会发生这种情况。它发生在frame.setVisible(true)上代码>frame
的类扩展了JFrame
。就像你写的,类窗口扩展了JFrame{}
?不。它是类MyFrame扩展了java.swing.JFrame{}
,它反过来扩展了java.awt.frame扩展了java.awt.window
…然后尝试新建MyFrame.setVisible(true)代码>我对此不确定。
new window.setVisible(true);