2012-03-20 18 views

答えて

3

また、現在のアプリを起動することもできます。 Java Web Startを使用してリンクから変換は必要なく、アプレットを配備するよりはるかに簡単です。

+0

1+素晴らしいレコーディングのため! –

4

元のプロジェクトは、JFrameのを作成した場合、あなたは単に

Container contentPane = myFrame.getContentPane(); 

経由のJFrameのcontentPaneをを取得し、そののcontentPaneとしてJAppletの年代にそれを追加していますが、メニューや、そのようなを失うことになる可能性があります。例えばのために

public class MyApplet extends JApplet { 

    @Override 
    public void init() { 
     try { 
     SwingUtilities.invokeAndWait(new Runnable() { 
      public void run() { 
       JFrame myFrame = new MyFrame("Frame"); 
       Container contentPane = myFrame.getContentPane(); 
       setContentPane(contentPane); 
      } 
     }); 
     } catch (InterruptedException e) { 
     e.printStackTrace(); 
     } catch (InvocationTargetException e) { 
     e.printStackTrace(); 
     } 
    } 
} 

ので、あなたがこの制限に実行していない行く取得からのJPanelを作成するために連動し、あなたのGUIクラスの大部分を持って良いです。このアプレットは、コマンドライン引数なしでアプリケーションを実行します

public class MyApplet extends Applet { 
    public void start() { 
     MyApplication.main(new String[0]); 
    } 
} 

+0

+1のための 'getContentPane()'。私はそれについて知らなかった。 – AlexR

+3

ほとんどのアプリケーションは、 'frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)'や 'System.exit(0)'の呼び出しなど、サンドボックス化されたアプレットでは許可されていないことを行うことに注意してください。アプレットからフレームを起動する、またはそのコンテンツを使用するようなことは決して簡単ではありません。 –

+0

+1はwell-factoredコンテンツのために、_hybrid_初期化がここで(http://stackoverflow.com/a/9106263/230513)言及したことを認めています。 – trashgod

2

ツールは、ロングコードの4行です。ここでの制限は、appetが独自のウィンドウを開くことです。ブラウザウィンドウには表示されません。レイアウトが動的であり、JFrame自体で作成される可能性があるため、一般的にはブラウザにそれを実行するのは簡単なことではありません。したがって、完全に移植するためには、アプリケーション構造の知識が必要です。 ほとんどの場合、それほど難しくないという良いニュースです。 Panelを拡張するアプレット自体を持つJFrameにコンポーネントを追加するコードを呼び出すだけで、コンテナです。

アプリケーションがパラメータを受け取る場合は、init()アプレットのメソッドを実装する必要があります。

+1

* "このアプレットはコマンドライン引数なしでアプリケーションを実行します。" * start()が呼び出されるたびに(ブラウザが最小化されなくなるたびに)。ほとんどのアプリケーションは、 'frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)'や 'System.exit(0)'の呼び出しなど、サンドボックス化されたアプレットでは許可されていないことを行うことに注意してください。アプレットからフレームを起動する、またはそのコンテンツを使用するようなことは決して簡単ではありません。 –

関連する問題