【问题标题】:How do I make a button in a Java Applet that opens a JFrame?如何在打开 JFrame 的 Java Applet 中制作按钮?
【发布时间】:2012-04-20 20:55:08
【问题描述】:

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

【问题讨论】:

  • 小程序除了打开框架做什么?

标签: java swing applet jframe japplet


【解决方案1】:

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

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

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

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

【讨论】:

【解决方案2】:

好的,听起来您在初始化时初始化了一个 JFrame 并存储了它。您不需要从初始化中重新实例化 JFrame。相反,只需将其存储在 Applet 的一个字段中,并在按下按钮时使用它。

或者你可以使用单例和延迟初始化:

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

但单身人士很丑陋,很多人选择避免使用。

【讨论】:

    【解决方案3】:

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

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

    此代码从小程序派生出来,与独立程序类似。无需任何特殊技巧。小程序本身只能包含诸如“按下以启动应用程序”之类的按钮。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-12
      • 1970-01-01
      • 2013-01-29
      • 1970-01-01
      • 2015-02-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多