2011-10-31 36 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