null applet上的数据

时间:2011-05-01 08:41:16

标签: java null applet

我有一个Java小程序,我试图通过它调用getContext().showDocument(aUrl)来导航到另一个网页。虽然浏览器正确导航到新页面,但我仍然在Java插件控制台中遇到这个令人讨厌的异常:

Exception in thread "AWT-EventQueue-2" java.lang.NullPointerException: null pData
    at sun.awt.windows.WComponentPeer.getLocationOnScreen(Native Method)
    at java.awt.Component.getLocationOnScreen_NoTreeLock(Unknown Source)
    at java.awt.Component.getLocationOnScreen(Unknown Source)
    at java.awt.LightweightDispatcher$3.run(Unknown Source)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

调用showDocument()方法时,控件位于AWT的 事件调度线程 内部,我认为在新页面加载之前会抛出异常 事件调度线程 已完成当前事件的处理,并且applet已经完成。

异常似乎是无害的,虽然我注意到当它被抛出时,applet的destroy()方法不再被调用,理论上它可能导致问题。

谷歌在这个问题上的搜索提出了很多类似问题的报告,但没有明确的解决方案。有谁知道我怎么能克服这个问题?这是一个已知的错误?有快速解决方法吗?

祝你好运, 丹。

1 个答案:

答案 0 :(得分:0)

SwingUtilities' invokeLater可能会对您有所帮助。 我们的想法是在处理完所有事件后将调用推迟到显示文档。只需使用您的代码创建一个Runnable实例并调用它。