1

動作する単純な Java アプリケーションをアプレットに変換しようとしています。アプリケーションは 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);
}
}

このように見えます。 アプレット アプレットとして実行することはできないようです。デバッグで実行すると、アプレット ウィンドウが開き、JFrame ウィンドウがポップアップします (アプリケーションと同様)。アプリケーションとしては期待どおりに動作しますが、アプレット ウィンドウにコントロールを表示するにはどうすればよいでしょうか? 私はこれが初めてです。どんな助けでも大歓迎です!

4

2 に答える 2

4

JAppletはそれ自体がSwingコンテナであるためgooey、常にJFrame(デスクトップウィンドウであり、アプレットでは機能しません)を使用するのではなく、クラスでアプレットのコンテンツペインを使用する必要があります。

gooey()そのクラスでJFrameを作成する代わりに、JAppletまたは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);

すでにアプレットインスタンスであるため、メインクラスでこれを行うこともできます

new gooey(this);

The setBounds(...) should only be called when dealing with a JFrame.

于 2011-06-22T12:21:47.013 に答える
1

アプレットのチュートリアルを確認することから始めることをお勧めします....アプレットには、(とりわけ)mainではなくinitメソッドが必要です-> http://download.oracle.com/javase/tutorial/deployment/ applet / getStarted.html

于 2011-06-22T12:20:17.210 に答える