【问题标题】:export a JOGL applet and embedd into a html page导出 JOGL 小程序并嵌入到 html 页面中
【发布时间】:2011-06-08 04:35:29
【问题描述】:

有一段时间我正在使用 java 和 JOGL 测试 opengl。我有一个很好的结果,我想在网上发布它,但我有一个问题。我在 Eclipse 中,我正在使用 JOGL 测试一个 Applet。

编辑:感谢 Ricket 的回答,它解决了这个问题

首先我遇到了这个运行时错误(但程序运行正常):

java.lang.IllegalArgumentException:
向容器中添加一个窗口

编辑:但它仍然不起作用:

然后我发现这非常清楚page 我做了所说的。我用浏览器打开 html,下载了库,但它停在Starting applet AppletHelloWorld,因为这是我给我的小程序起的名字。

也许我缺少主函数或正确导出 jar 之类的东西?

这是我的主要代码:

public class AppletHelloWorld extends Applet 
{


public static void main(String[] args)
 {
 JFrame fr=new JFrame(); 
 fr.setBounds(0,0,1015,600);
 fr.add(new AppletHelloWorld());

 fr.setVisible(true);
 }
  public void init() 
 { 
  setLayout(null); 
  MyJOGLProject canvas = new MyJOGLProject(); //MyJOGLProject extends JFrame
  canvas.run(); // this do setVisible(true)
 } //....

【问题讨论】:

    标签: java jar applet export jogl


    【解决方案1】:

    正如错误所说,您正在尝试将窗口添加到容器中。 JFrame 是一个窗口。您不能将 JFrame 添加到任何东西,包括容器。我想也许你要么不知道 JFrame 是什么,要么不知道 Container 是什么。

    理想情况下,您应该让 MyJOGLProject 扩展 GLEventListener。然后您的 init 函数将创建一个新的 GLCanvas,向其中添加 MyJOGLProject 的一个实例(通过 addGLEventListener),然后将 GLCanvas 添加到您的小程序中。

    或者,如果您对弹出 JFrame 的小程序感到满意,则简化您的 init 方法:

    public void init() {
        setLayout(null);
        MyJOGLProject canvas = new MyJOGLProject();
        canvas.setVisible(true);
    }
    

    应该可以的。

    【讨论】:

    • 好的,现在不再出现运行时异常,但它仍然无法在浏览器中运行。它停在“启动小程序 AppletHelloWorld”。还能是什么?
    【解决方案2】:

    使用 JApplet。我认为这就是它失败的原因。 (在 NetBeans 中使用带有 JNLP 的 Webstart)

    【讨论】:

      猜你喜欢
      • 2014-04-01
      • 2011-10-15
      • 1970-01-01
      • 2014-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-15
      • 2012-04-23
      相关资源
      最近更新 更多