Ошибки при развертывании апплета, созданного в Netbeans, с использованием Netbeans и Swing - PullRequest
0 голосов
/ 03 мая 2011

Я создал апплет с NetBeans. Мой партнер использовал интерфейс Drag-and-Drop Swing для интерфейса. Он отлично работает без исключений и предупреждений, когда я щелкаю правой кнопкой мыши по файлу апплета и нажимаю «выполнить». Тем не менее, он генерирует это исключение, когда я собираю его и помещаю сгенерированный HTML-файл NetBeans на сервер apache на моем компьютере и запускаю его.

Вот шаг за шагом, что я делаю, чтобы развернуть его на моем локальном сервере (~ myHome / Sites /):

  1. Я нажимаю "очистить и построить"

  2. Я щелкаю правой кнопкой мыши на исходном файле апплета вкладки и выбираю «Выполнить» Он открывается и работает нормально в новом окне. (Он также создает файл Applet.html для тестирования, поэтому я делаю это)

  3. Я запускаю $ cp -r / build ~ myHome / Sites Это копирует HTML-файл для тестирования и папку классов со всеми скомпилированными классами в папку моих сайтов

  4. Открыть веб-браузер по пути, и он выдает ошибку и не загружается

Вот ошибка с консоли:

basic: Added progress listener: sun.plugin.util.GrayBoxPainter$GrayBoxProgressListener@316d3536
basic: Applet loaded.
basic: Applet resized and added to parent container
basic: PERF: AppletExecutionRunnable - applet.init() BEGIN ; jvmLaunch dt 260792 us, pluginInit dt 255591692 us, TotalTime: 255852484 us
network: Cache entry not found [url: http://***.edu/~myHomeDirectory/build/classes/org/jdesktop/layout/GroupLayout$Group.class, version: null]
network: Connecting http://~myHomeDirectory/Sites/build/classes/org/jdesktop/layout/GroupLayout$Group.class with proxy=DIRECT
network: Connecting http://***.edu:80/ with proxy=DIRECT
network: Connecting http://***.edu/~myHomeDirectory/Sitesbuild/classes/org/jdesktop/layout/GroupLayout$Group.class with cookie 
basic: Removed progress listener: sun.plugin.util.GrayBoxPainter$GrayBoxProgressListener@316d3536
Exception in thread "thread applet-tab_interface/TabApplet.class-4" java.lang.NoClassDefFoundError: org/jdesktop/layout/GroupLayout$Group
    at tab_interface.Mediator.<init>(Mediator.java:26)
    at tab_driver.TabDriver.<init>(TabDriver.java:86)
    at tab_interface.TabApplet.init(TabApplet.java:69)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1640)
    at java.lang.Thread.run(Thread.java:680)
Caused by: java.lang.ClassNotFoundException: org.jdesktop.layout.GroupLayout$Group
    at sun.plugin2.applet.Applet2ClassLoader.findClass(Applet2ClassLoader.java:252)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Plugin2ClassLoader.java:250)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:180)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:161)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    ... 5 more

Итак, я думаю, что мои основные вопросы:

Что еще нужно сделать для развертывания и создания апплета с помощью редактора NetBeans Swing?

Есть предложения о том, что делать дальше, чтобы решить эту проблему? Я выполнил исключение, и оно приводит к строке посредника 26 ...

gui = new AppletGUI();

Эта строка является конструктором для класса GUI, созданного редактором Swing NetBeans. Вот некоторый основной код, чтобы показать, что происходит. Апплет, GUI, GUIMediator находятся в одном пакете, а TabDriver - в своем собственном.

class MyApplet extends Applet{

GUIMediator gui;
TabDriver driver;

init(){
   driver = new TabDriver(...); // TabDriver creates a mediator
   gui = driver.getMediator();
   try {
            SwingUtilities.invokeAndWait(new Runnable() {
                public void run() {
                    createGUI();
                }
            });
        } catch (InterruptedException ex) {
            ...
        } catch (InvocationTargetException ex) {
            ...
        }
   }

   void createGUI(){
      this.add(gui.getGUI()); // add JPanel to Applet
   }
}

class TabDriver {

   TabDriver (...) {
      this.mediator = new GUIMediator(this);
   }

}

class GUIMediator {
   TabDriver driver;
   JPanel GUI;

   GUIMediator(TabDriver td) {
      driver = td;
      GUI = new TabGUI();
   }
}

class TabGUI extends JPanel {

   TabGUI() {
//      super();
//      init();
//      initListeners();
//        ...
   }

}

Обратите внимание, что все в TabGUI закомментировано и что оно по-прежнему выдает исключение при инициализации TabGUI в веб-браузере.

Извините, что так долго.

Спасибо, -N

1 Ответ

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

Похоже, GroupLayout недоступно. Поскольку это новое в версии 1.6, вы можете проверить установленную JRE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...