Netbeans GUI编辑器生​​成自己难以理解的代码

当在netbeans中创build一个新项目时,如果我selectJAVA桌面应用程序,它会创build一些我不能识别的代码,就像我在swing中学到的一样。

它导入包如:

org.jdesktop.application.SingleFrameApplication; 

另外,main()的声明如下所示:

 public static void main(String[] args) { launch(DesktopApplication2.class, args); } 

这对我对JFrame,JPanel等的了解是没有任何意义的。

如果我尝试从头开始编写netbeans应用程序,我可以编写自己的swing应用程序,但是我找不到GUI编辑器。

  • 从头开始创buildJava应用程序时,我如何使用GUI编辑器?
  • 任何人都可以向我解释org.jdesktop.application.SingleFrameApplication和其他类?

请帮忙。 这真是令人沮丧。

您可能无意中select了Java Desktop Application

基于Swing应用程序框架(JSR 296)创build桌面应用程序的框架 。 此模板提供基本的应用程序基础结构,如菜单栏,持久化窗口状态和状态栏。 使用此模板,您还可以生成代码以创build数据库表的GUI界面。

而不是Java Application

在标准IDE项目中创build一个新的Java SE应用程序。 您也可以在项目中生成一个主类。 标准项目使用IDE生成的Ant构build脚本来构build,运行和debugging项目。

附录:使用File > New File > Java GUI Forms添加高级容器,例如可以从main()run()方法实例化的封闭JPanel

例如, Main.main()

 package temp; import java.awt.EventQueue; import javax.swing.JFrame; public class Main { public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { @Override public void run() { JFrame f = new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.add(new NewJPanel()); f.pack(); f.setVisible(true); } }); } } 

而在GUI编辑器中build立一个NewJPanel (注意“生成的代码”):

 package temp; public class NewJPanel extends javax.swing.JPanel { /** Creates new form NewJPanel */ public NewJPanel() { initComponents(); } @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { jLabel1 = new javax.swing.JLabel(); jLabel1.setText("Hello, world!"); org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .add(163, 163, 163) .add(jLabel1) .addContainerGap(157, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .add(113, 113, 113) .add(jLabel1) .addContainerGap(171, Short.MAX_VALUE)) ); }// </editor-fold> // Variables declaration - do not modify private javax.swing.JLabel jLabel1; // End of variables declaration } 

你会在这里find关于org.jdesktop.application.SingleFrameApplication更多org.jdesktop.application.SingleFrameApplication 。 简要介绍,但是:这是Swing应用程序框架的一部分 。 Matisse(现在称为Java Swing GUI生成器)在AFAIK中严格使用应用程序框架,而不是一般的Swing应用程序。 基本上,如果你正在使用原始的Swing,那么你几乎是靠自己的。