2011-06-22 48 views
1

我想將工作的簡單Java應用程序轉換爲applet。該應用程序包含一個main.java和gooey.java的將Java應用程序轉換爲Applet的問題

Main.java

package hellow_convert; 
import javax.swing.JApplet; 
public class main extends JApplet { 
public static void main(String[] args) { 
gooey gui = new gooey();  
} 
public void init() 
{ 
gooey gui = new gooey();   
} 
public void stop() {} 
} 

gooey.java

package hellow_convert; 
import javax.swing.*; 
import java.util.*; 
import java.awt.*; 
public class gooey {  
public JFrame f = new JFrame(); 
private JPanel pnlNorth = new JPanel(); 
private JButton btnNorth = new JButton("North"); 
private JMenuBar mb = new JMenuBar(); // MenuBar 
private JMenu mnuFile = new JMenu("File"); // File Entry on Menu bar 
private JMenuItem mnuItemAbout = new JMenuItem("About"); // About Entry 
public gooey(){ 
f.setJMenuBar(mb); 
mb.add(mnuFile);  
mb.add(mnuHelp); 
pnlNorth.add(btnNorth); 
f.getContentPane().setLayout(new BorderLayout()); 
f.getContentPane().add(pnlNorth, BorderLayout.NORTH); 
f.setBounds(100, 100, 200, 100); 
} 
} 

它容貌喜歡這個。 Applet 我似乎不能使它作爲一個小程序運行。當我在調試中運行它時,會打開一個小程序窗口,然後彈出JFrame窗口(就像在應用程序中一樣)。作爲應用程序,它按預期運行,但是如何將控件放到Applet窗口中? 我對此很陌生。任何幫助表示讚賞!

+2

「我試圖將一個簡單的Java應用程序轉換爲小程序」爲了更好的用戶體驗和更低的維護成本,請使用[Java Web Start](http:// stackoverflow)直接從網頁啓動框架。 COM /標籤/ Java的Web啓動/信息)。 –

+0

@Andrew謝謝!它需要任何客戶端應用程序安裝嗎? –

+2

這需要使用Webstart進行可用的Java安裝,至少需要您需要的版本。請注意,兩年前,一些64位JRE沒有提供Webstart,但我不確定這是否仍然相關。 – Thomas

回答

4

嘛,JApplet的是一個Swing容器本身,因此你必須在類gooey中使用小程序的內容窗格,而不是始終使用JFrame(這是一個桌面窗口,不會與小程序一起使用)。

嘗試將JApplet或JFrame傳遞給gooey()構造函數,而不是在該類中創建JFrame。

編輯:你的構造可能是這樣的:

​​

}

然後調用它像:

JFrame f = new JFrame(...); 
new gooey(f); 

JApplet a = new JApplet(...);   
new gooey(a); 

你也可以做到這一點在你的主類,因爲它已經是一個applet實例

new gooey(this); 

有一個JFrame打交道時的setBounds(...)只應調用。

+0

謝謝..你能詳細說一點嗎? –

+0

我試過Container c = this;並將c傳給粘糊糊的人。在使用c.getContentPane()之前,我是否需要執行一些類型轉換? –

+0

這個工作,當我做JApplet a = this;謝謝!! (請編輯你的答案以反映相同) –

1

我會建議你在看看Applet的教程....小程序需要有一個init方法,而不是主要的(除其他事項外)開始 - >http://download.oracle.com/javase/tutorial/deployment/applet/getStarted.html

+0

我有一個init方法(請參閱代碼)。 Main是我班的名字。小程序初始化,但控件在單獨的JFrame中打開。 –

+1

對不起,你是對的...你的代碼很難閱讀!我錯過了......本質上問題是你正在使用的JFrame ......它是一個桌面窗口 - 而不是一個小程序相關的類。 – ManseUK

相關問題