Java运行时异常

时间:2010-05-17 14:17:05

标签: java swing exception-handling

当我运行我的应用程序时,我收到以下错误:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at javax.swing.text.FlowView$FlowStrategy.layoutRow(FlowView.java:546)
    at javax.swing.text.FlowView$FlowStrategy.layout(FlowView.java:460)
    at javax.swing.text.FlowView.layout(FlowView.java:184)
    at javax.swing.text.BoxView.setSize(BoxView.java:380)
    at javax.swing.text.BoxView.updateChildSizes(BoxView.java:349)
    at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:331)
    at javax.swing.text.BoxView.layout(BoxView.java:691)
    at javax.swing.text.BoxView.setSize(BoxView.java:380)
    at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1702)
    at javax.swing.plaf.basic.BasicTextUI.modelToView(BasicTextUI.java:1034)
    at javax.swing.text.DefaultCaret.repaintNewCaret(DefaultCaret.java:1291)
    at javax.swing.text.DefaultCaret$1.run(DefaultCaret.java:1270)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

由于错误没有提及我的任何课程,我将如何找到造成这种情况的原因?

如果我尝试:public void notifyChatMessage(String message){...}错误就会消失(不)。

编辑:经过进一步测试后发现上面也会产生错误。

但如果我尝试:public void notifyChatMessage(Object message){...}则会报告错误。

请告知。

编辑:

        public void notifyChatMessage(String message){


         AppMessage appMessage = new AppMessage(AppMessage.Target.Chat, message);
         setChanged();
         notifyObservers(appMessage);

     }

AppMessage:

public class AppMessage implements Serializable {

/**
 * Message header for target: game, chat
 */
public enum Target {
    Game, Chat
}

/**
 * Holds target
 */
public Target target;

/**
 * Holds state message
 */
public Object message;

/**
 * Construct using parameter data
 * @param target
 * @param message
 */
public AppMessage(Target target, Object message){

    this.target = target;
    this.message = message;

}

}

编辑:即使有错误报告,程序仍然继续运行,我看不出任何性能缺乏,即。运行中的错误使得本地化问题的任务变得更加复杂。

编辑:当我通过netbeans中的调试器运行时,我得到:调试器在无法编译的源代码上停止。

编辑:由于跨线程GUI更新而引发异常。调查invokeLater和invokeAndWait以获得解决方案。

解决方案: invokeAndWait

2 个答案:

答案 0 :(得分:1)

致电javax.swing.text.FlowView$FlowStrategy.layoutRow(FlowView.java:546)正在尝试处理NULL的内容。看着它的签名。 NULL FlowView fv int NULL NULL {{1}} {{1}}唯一可能是{{1}} {{1}} {{1}} {{1}} {{1}}。因此,如果没有代码运行和逐步调试,我会说某些事情要么没有设置FlowView或将其设置为{{1}}。

答案 1 :(得分:-1)

使用来源...以javax.swing.text.FlowView第546行开头