当添加扩展 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/