2011-10-31 92 views
4

是否可以在java应用程序的窗口中显示web applet?在java应用程序中加载java applet

如果你可以给出一个示例代码,这将是更可取的,因为我对Java非常陌生。

+1

为什么你想这样做?小应用程序和应用程序是两个不同的概念,小应用程序是一种框架替换,它将内容包装在Web浏览器中进行显示。 – Stephan

+0

我强烈的第二个斯蒂芬的好建议。我建议您参考Swing教程来了解如何创建JPanel,并将创建应用程序的过程转换为JPanel。通过这种方式,您可以轻松地在applet或独立应用程序或对话框窗口或其他JPanel中轻松显示它们。 –

+1

@Stephan因为我想为基于小程序的游戏制作一个客户端。 – Tyilo

回答

4

看一看到的Javadoc:

extended by java.awt.Container 
     extended by java.awt.Panel 
      extended by java.applet.Applet 

Applet的是面板,所以你应该能够将其添加到一个框架。但是,它们在Frame(或JFrame)中的初始化和调用是不同的。这是,顺便说一句。该JApplet的版本:

java.lang.Object 
    extended by java.awt.Component 
     extended by java.awt.Container 
      extended by java.awt.Panel 
       extended by java.applet.Applet 
        extended by javax.swing.JApplet 

如果applet的代码是你,我会把所有有趣的内容到一个JPanel,并且无论是在JApplet的使用此JPanel,或者把它变成一个JFrame,并用它作为一个应用程序。如果它不是你的(J)Applet,并且你没有代码,我会测试将它们添加到(J)框架中的(J)面板上。

0

如果您真的想这样做,您可以简单地将小程序添加到框架,因为Applet是Component的一个子类。

JFrame frame = new JFrame(); 

// Create your applet to add to the frame 
Applet comp = new YourApplet() {{ 
    // this calls the method that initializes the applet. usually the browser calls it 
    init(); 
}}; 

// Add the component to the frame's content pane; 
// by default, the content pane has a border layout 
frame.getContentPane().add(comp, BorderLayout.CENTER); 

// Show the frame 
frame.pack(); 
frame.setVisible(true); 

注意,这是一个不好的做法,如果你不能访问和更改小程序的源代码,才应使用!你可能会遇到问题,我不能保证这会起作用。

更好的方法是创建一个包含整个视图并将其添加到小程序或框架的主面板,具体取决于客户端类型(Web或独立)。

+0

如何从URL加载小程序? – Tyilo

+0

对不起,我不明白这个问题。 – Stephan

+0

假设我有一个位于'http:// example.com/applet.jar'的applet jar,我将如何加载它? – Tyilo