ноль pData на аплет - PullRequest
0 голосов
/ 01 мая 2011

У меня есть 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 , и я считаю, что исключение выдается, когда новая страница загружается до поток отправки события завершил обработку текущего события, и апплет уже работает.

Исключение кажется безвредным, хотя я заметил, что когда его выдают, метод destroy() апплета больше не вызывается, что теоретически может привести к проблемам.

Поиск в Google по этому вопросу приводит к множеству сообщений о похожих проблемах, но нет четкого решения. Кто-нибудь есть идеи, как я могу преодолеть эту проблему? Это известная ошибка? Есть быстрое решение или что-то?

С наилучшими пожеланиями, Dan.

1 Ответ

0 голосов
/ 02 мая 2011

invokeLater SwingUtilities может помочь вам.Идея состоит в том, чтобы отложить вызов, чтобы показать документ после того, как все события были обработаны.Просто создайте экземпляр Runnable с вашим кодом и вызовите его.

...