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

Yas*_*sai 7 java user-interface swing netbeans

在netbeans中创建一个新项目时,如果我选择JAVA Desktop应用程序,它会创建一些我根本无法识别的代码,就像我在摇摆中学到的那样.

它导入包如:

org.jdesktop.application.SingleFrameApplication;
Run Code Online (Sandbox Code Playgroud)

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

public static void main(String[] args) {
            launch(DesktopApplication2.class, args);
        }
Run Code Online (Sandbox Code Playgroud)

这对我对JFrame,JPanel等的知识没有任何意义.

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

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

请帮忙.这真令人沮丧.

tra*_*god 25

您可能无意中选择了 Java Desktop Application

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

而不是 Java Application

在标准IDE项目中创建新的Java SE应用程序.您还可以在项目中生成主类.标准项目使用IDE生成的Ant构建脚本来构建,运行和调试项目.

附录:使用File > New File > Java GUI Forms添加高水平的容器,例如一包围JPanel,这可从实例化main()run()方法.

例如,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);
            }
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

NewJPanel内置GUI编辑器(注意"生成代码"):

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
 }
Run Code Online (Sandbox Code Playgroud)