Spec-Zone .ru
спецификации, руководства, описания, API
Содержание документации

Отметьте: Это руководство по развертыванию Java описывает функции, выпущенные до Java SE 6 обновлений 10 выпусков. См. Java Богатый документ Разработки и Развертывания Интернет-приложений для последней информации.

java.lang.ClassCastException Брошенный От Потока Диспетчеризации События AWT, Когда Мышь Отодвигается Фрейм Апплета

Признаки

Выполняя апплет в браузере при использовании Sun Среда выполнения Java™ (JRE™) реализация, a java.lang.ClassCastException бросается от Abstract Window Toolkit (AWT) диспетчеризирующий событие поток, когда мышь отодвигается фрейм апплета, как показано в следующем коде:

       java.lang.ClassCastException: sun.plugin....
        at MyApplet.mouseExit(Unknown Source)
        at java.awt.Component.handleEvent(Unknown Source)
        at java.awt.Component.postEvent(Unknown Source)
        at java.awt.Component.dispatchEventImpl(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(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.run(Unknown Source)

Апплет работает без любой ошибки с Microsoft Virtual Machine (VM).

Причина

У этого исключения есть две возможных причины:

Разрешение

В первой причине переместитесь по всему иерархическому компонентному дереву AWT от апплета, чтобы определить местоположение фрейма, вместо того, чтобы положиться на фрейм на определенном уровне. Следующий код показывает, как можно переместиться по всему компонентному дереву:

public void foo()
{
      // Navigate component tree
      Container c = getParent();
      while (c != null && (c instanceof Frame) == false)
              c = c.getParent();

      // Cast Container to Frame
      if (c instanceof Frame)
      {
          Frame f = (Frame) c;
               ...
      }
}

Во второй причине, доступе AppletContext использование Applet.getAppletContext() метод как показано в следующем коде:

       public void foo()
   {
         ....
         AppletContext ac = (AppletContext) getAppletContext();
        ...
   }

 

Соответствующая информация

       Ни один.


Oracle и/или его филиалы Авторское право © 1993, 2012, Oracle и/или его филиалы. Все права защищены.
Свяжитесь с Нами