【问题标题】:NullPointerException when calling Window.setVisible()调用 Window.setVisible() 时出现 NullPointerException
【发布时间】:2013-12-29 10:49:19
【问题描述】:

我有一个繁重的 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.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 包的源代码,所以我被卡住了...

顺便说一句,不管这个异常,应用程序运行正常,但我还是想解决这个问题..

有人熟悉这个问题吗?

【问题讨论】:

  • 你能发布代码吗?也许你有一个循环(在 java.awt.Container.addNotify(Container.java:2576) 在 javax.swing.JComponent.addNotify(JComponent.java:4693) )
  • 正如我所说,这是一个沉重的 GUI 应用程序,包含(仅 GUI 部分)数十个类。问题是我在编写第一个类时是一个完全的 Java 初学者,我可能会做一些糟糕的编程,我现在正试图追溯。所以不行。我想发布整个代码是不可能的......
  • 我会检查您在 GUI 中使用的 JTableCS,并检查在向其添加侦听器时是否有任何问题(如果您可以访问它)。
  • 我无权访问 JTableCS 源代码。罐子在网上可以买到。

标签: java swing nullpointerexception window


【解决方案1】:

试试

  new window.setVisible(true);

【讨论】:

  • 查看窗口效果很好。仅当Window 中包含com.mercury.ftjadin.support.jfc11.cs.JTableCS 实例时才会发生这种情况。
  • 它发生在frame.setVisible(true);frame 的类扩展了 JFrame
  • 就像你写的那样,class window extends JFrame{}?
  • 没有。是class MyFrame extends java.swing.JFrame {} 又是extends java.awt.Frame extends java.awt.Window...
  • 然后试试new MyFrame.setVisible(true);我不确定。
【解决方案2】:

这个问题与QTP的java插件有关。

自从我删除了这个插件后,没有抛出异常。

【讨论】:

    【解决方案3】:

    检查空对象。

    示例:

    if(object!=null)
    {
      //enter code here
    }
    

    【讨论】:

      猜你喜欢
      • 2015-02-13
      • 2012-01-21
      • 2012-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-16
      • 1970-01-01
      相关资源
      最近更新 更多