2

添加扩展 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 方法,我猜所有的类都是同时启动的。

如何添加没有主要方法的框架?

4

1 回答 1

4

首先,请参阅多个 JFrame 的使用,好/坏做法?. 一般来说,建议不要这样做。有关其他可能性,请参阅已接受的答案(例如 JDialog)

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

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

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

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


顺便说一句,如果您是初学者,我强烈建议您放下构建器工具,先学习编写代码。可能有很多教程教你如何使用构建器工具,但它们可能会错过 Swing 架构和 Swing 中的重要概念。IMO 这将极大地影响您对构建器的工作方式和原因的理解,从而在尝试调试时引起很多麻烦。继续使用 JFC/Swing 创建 GUI,官方教程很方便,并通过它。

于 2014-06-28T07:24:42.293 回答