使用Netbeans和Swing部署在Netbeans中创建的Applet的错误

时间:2011-05-03 18:06:00

标签: java swing netbeans applet

我用NetBeans创建了一个Applet。我的合作伙伴使用NetBean的Drag-and-Drop Swing编辑器作为界面。当我右键单击applet文件并单击“运行”时,它运行完全没有异常或警告。但是,当我构建它并将NetBeans生成的html文件放在我的机器上的apache服务器上并运行它时,它会抛出此异常。

我正在逐步将其部署到我的本地服务器(~myHome / Sites /):

  1. 点击“清理并构建”

  2. 我右键单击选项卡小程序源文件并选择“运行”。它在新窗口中打开并运行良好。 (它还会创建一个用于测试的Applet.html文件,这就是我这样做的原因)

  3. 我运行$ cp -r / build~myHome / Sites 这会将用于测试的html文件和包含所有已编译类的类文件夹复制到我的站点文件夹

  4. 打开网络浏览器到路径,它会出错并且无法加载

  5. 以下是控制台的错误:

    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编辑器创建部署和applet是否还需要做些什么?

    关于应该采取什么措施来解决这个问题的任何建议?我遵循了例外,它导致了Mediator第26行......这是:

    gui = new AppletGUI();
    

    该行是NetBeans Swing Editor创建的GUI类的构造函数。这是一些显示最新情况的基本代码。 applet,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中的所有内容都已注释掉,并且在Web浏览器中初始化TabGUI时仍会引发异常。

    对不起,这太久了。

    谢谢你, -N

1 个答案:

答案 0 :(得分:0)

看起来GroupLayout不可用。作为1.6版中的新功能,您可以检查已安装的JRE。