java - NetBeans 在每个添加的框架中插入 main() 方法

标签 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 方法,我猜所有类都会同时启动。

如何在没有 main 方法的情况下添加框架?

最佳答案

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

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

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

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

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


顺便说一句,如果你是初学者,我强烈建议你先把构建工具放在一边,先学会手工编写代码。可能有很多教程教您如何使用构建器工具,但它们可能会错过 Swing 架构和一般 Swing 中的重要概念。在我看来,这将极大地影响您对构建器如何以及为何工作的理解,在尝试调试时引起很多头痛。保留Creating a GUI With JFC/Swing ,官方教程好用,过一下吧。

关于java - NetBeans 在每个添加的框架中插入 main() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24464471/

相关文章:

java - 在 Apache 上运行多个 tomcat 实例

java - GUI 中的线程 (Swing) - 应用程序解冻

java - JPanel 仅在滚动时重画

java - 使用线程等待用户选择文件

c++ - 如何让 NetBeans 在执行语法检查时使用 C++14?

java - 在 powershell 中将参数传递给程序时遇到问题

java - 向 JavaEE 应用程序添加类的成本是多少

java - 使用 NetBeans GUI 构建器以 Java MVC 方法进行编程

php - 修改 NetBeans 中函数注释的命令/模板。使用 "/** + Enter key"触发

java - 返回 Mono<Void> 后的方法调用