NetBeans在每个添加的帧中插入main()方法

时间:2014-06-28 07:01:31

标签: java swing netbeans jframe gui-builder

当添加新的类扩展JFrame(或java.awt.Frame)时,类中添加了main()方法,如下所示:

public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new NewFrame5().setVisible(true);
        }
    });
}

每个JFrame类都有自己的main方法,我猜所有类都是同时启动的。

如何在没有主要方法的情况下添加帧?

1 个答案:

答案 0 :(得分:4)

首先,请参阅The Use of Multiple JFrames, Good/Bad Practice?。一般来说,建议不要这样做。请参阅已接受的答案了解其他可能性(例如JDialog)

至于你的主要关注点,没有办法围绕netbeans创建JFrame和JDialog等顶级容器的主要方法。在JFrame的情况下,逻辑似乎是正确的,因为应用程序应该只有一个JFrame作为应用程序的主要顶级容器,但我不确定JDialog背后的逻辑main 1}}方法(因为对话框通常在与主JFrame相同的JVM中运行)。我唯一能想到的是,如果要在独立模式下测试对话框,则使用main创建JDialog以进行开发。但最终,如果您选择使用JDialog,则应删除JDialog的main方法。

回到关于多个JFrame的第一点,我可能会推荐其他选项

  • 使用JDialog。是的,在进入生产阶段时,您将不得不删除main方法,因为对话框将在主JVM的上下文中实例化,并且通常不应该运行自己的进程。

  • 根据您的要求,另一个选项是使用Cardlayout,您可以在视图/面板之间切换(您可以在netbeans中创建JPanel表单)。有关工作指南,请参阅How to Use CardLayout in Netbeans GUI Builder。官方How to use CardLayout教程


除此之外,如果您是初学者,我强烈建议您将构建工具放在一边,并学习先处理代码。可能有许多教程教你如何使用构建器工具,但是他们可能错过了摇摆架构中的重要概念和一般的摆动。 IMO这将极大地影响您对构建器如何以及为何与构建器一起工作的理解,在尝试调试时会引起很多麻烦。保留Creating a GUI With JFC/Swing,官方教程,并通过它。