[英]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.