簡體   English   中英

將Java應用程序轉換為Applet時遇到問題

[英]Problem converting Java Application to Applet

我正在嘗試將工作正常的 Java應用程序轉換為applet。 該應用程序由main.java和gooey.java組成

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窗口? 我是新來的。 任何幫助表示贊賞!

好吧,JApplet本身就是一個Swing容器,因此您必須在類gooey使用applet的內容窗格,而不是始終使用JFrame(這是桌面窗口,不能與applet一起使用)。

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

編輯:您的構造函數可能如下所示:

public gooey(RootPaneContainer c){
  c.getRootPane().setJMenuBar(mb);
  mb.add(mnuFile);       
  mb.add(mnuHelp);
  pnlNorth.add(btnNorth);
  c.getContentPane().setLayout(new BorderLayout());
  c.getContentPane().add(pnlNorth, BorderLayout.NORTH);      

}

然后像這樣調用它:

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

要么

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

您也可以在主類中執行此操作,因為它已經是applet實例

new gooey(this);

僅在處理JFrame時才應調用setBounds(...)

我建議您先看一下Applet教程...。applet需要有一個init方法而不是main方法(以及其他方法)-> http://download.oracle.com/javase/tutorial/deployment/ applet / getStarted.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM