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,那么你几乎是靠自己的。