gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 07:07:53 25 4
gpt4 key购买 nike

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

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

最佳答案

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

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

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

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

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


顺便说一句,如果你是初学者,我强烈建议你放下构建器工具,先学会手写代码。可能有很多教程教您如何使用构建器工具,但它们可能会遗漏 swing 架构和一般 swing 中的重要概念。 IMO 这将极大地影响您对构建器工作方式和原因的理解,从而在尝试调试时造成很多麻烦。保持Creating a GUI With JFC/Swing ,官方教程得心应手,过一遍。

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com