如何在打开JFrame的Java Applet中创建一个按钮?

时间:2012-04-20 20:55:09

标签: java swing applet jframe japplet

我制作了一些JFrame,我想从JApplet中调用它们。做这个的最好方式是什么?我可以在init方法中实例化我的JFrame,然后只要按下按钮就调用它们吗?

3 个答案:

答案 0 :(得分:3)

  

如何在打开JFrame的Java Applet中创建一个按钮?

您可能不应该这样做,而是如果您想从JApplet打开另一个窗口,请创建并显示JDialog。它们的创建和显示类似于JFrame,但使用不同的构造函数。您需要获取"所有者"的小程序窗口。 JDialog的参数,可以通过以下方式获得:

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

其中comp是JApplet中的可见组件。

答案 1 :(得分:0)

好的,这听起来像是在初始化时初始化JFrame并存储它。您无需从初始化中重新实例化JFrame。而是将其存储在Applet的一个字段中,并在按下按钮时使用它。

或者您可以使用Singletons和延迟初始化:

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

但是单身人士很丑陋,许多人选择避开它们。

答案 2 :(得分:0)

您可以使用默认构造函数创建JFrame,然后显示它:

JFrame frame = new JFrame();
JLabel label = new JLabel("Welcome");
frame.add(label);
frame.pack();
frame.setVisible(true);

此代码从applet中分离,与独立程序类似。不需要任何特殊技巧。然后,applet本身只能包含“按下以启动应用程序”等按钮。