1

いくつかの JFrames を作成しましたが、それらを JApplet から呼び出したいと考えています。これを行う最善の方法は何ですか?JFrames を init メソッドでインスタンス化して、ボタンが押されるたびに呼び出すことはできますか?

4

3 に答える 3

3

Java アプレットで JFrame を開くボタンを作成するにはどうすればよいですか?

おそらくこれを行うべきではありませんが、JApplet から別のウィンドウを開きたい場合は、JDialog を作成して表示します。それらは JFrame と同様に作成および表示されますが、異なるコンストラクターを使用します。JDialog の「所有者」パラメータ用にアプレットの Window を取得する必要があります。これは次の方法で取得できます。

Window w = (Window) SwingUtilities.getAncestorOfClass(Window.class, comp); 

comp は、JApplet で表示されるコンポーネントです。

于 2012-04-20T21:13:24.017 に答える
0

OK、初期化時に JFrame を初期化して保存するようですね。JFrame を初期化から再インスタンス化する必要はありません。代わりに、アプレットのフィールドに保存して、ボタンが押されるたびに使用します。

または、シングルトンと遅延初期化を使用できます。

class JFrameToOpen extends JFrame {
    private static JFrame frame = null;
    private JFrameToOpen() {
        //init
    }
    public static GetJFrame() {
        if(frame==null) {
            frame=new JFrameToOpen();
        }
        return frame;
    }
}

しかし、シングルトンは見苦しく、多くの人がシングルトンを避けることを選択しています。

于 2012-04-20T21:02:35.100 に答える