我正在尝试将工作简单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运行。当我在调试中运行它时,会打开一个applet窗口,然后弹出JFrame窗口(就像在应用程序中一样)。作为一个应用程序,它按预期运行,但如何让控件进入Applet窗口? 我是新手。任何帮助表示赞赏!
答案 0 :(得分:4)
好吧,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(...)
。
答案 1 :(得分:1)
我建议你先看一下Applet教程.... applets需要一个init方法而不是main(除其他外) - > http://download.oracle.com/javase/tutorial/deployment/applet/getStarted.html