Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Netbeans GUI编辑器生成自己无法理解的代码_Java_User Interface_Swing_Netbeans - Fatal编程技术网

Java Netbeans GUI编辑器生成自己无法理解的代码

Java Netbeans GUI编辑器生成自己无法理解的代码,java,user-interface,swing,netbeans,Java,User Interface,Swing,Netbeans,在netbeans中创建一个新项目时,如果我选择JAVA桌面应用程序,它会创建一些我根本不认识的代码,这些代码是我在swing中学到的 它导入以下包: org.jdesktop.application.SingleFrameApplication; 此外,main的声明如下所示: public static void main(String[] args) { launch(DesktopApplication2.class, args); } 就我对

在netbeans中创建一个新项目时,如果我选择JAVA桌面应用程序,它会创建一些我根本不认识的代码,这些代码是我在swing中学到的

它导入以下包:

org.jdesktop.application.SingleFrameApplication;
此外,main的声明如下所示:

public static void main(String[] args) {
            launch(DesktopApplication2.class, args);
        }
就我对JFrame、JPanel等的了解而言,这真的没有任何意义

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

从头开始创建java应用程序时,如何使用GUI编辑器? 谁能给我解释一下这个org.jdesktop.application.SingleFrameApplication和其他类吗?
请帮忙。这确实令人沮丧。

您可能无意中选择了Java桌面应用程序

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

而不是Java应用程序

在标准IDE项目中创建新的JavaSE应用程序。您还可以在项目中生成一个主类。标准项目使用IDE生成的Ant构建脚本来构建、运行和调试项目

附录:使用File>New File>JavaGUI表单添加高级容器,例如可以从main的run方法实例化的封闭JPanel

例如,Main.Main:

以及GUI编辑器中内置的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
 }

您将找到关于org.jdesktop.application.SingleFrameApplication的更多信息。然而,简而言之:这是问题的一部分。Matisse现在称之为JavaSwingGUI构建器,AFAIK,严格使用应用程序框架,而不是一般的Swing应用程序。基本上,如果你使用的是未经处理的Swing,那么你几乎只能靠自己了。

-1因为。。。?在扔屎之前只是礼貌地冲一下?我猜是因为答案不完全正确。Matisse不仅与Swing应用程序框架一起工作——它还可以与“原始”Swing一起使用,而且我非常确定NetBeans的人使用它来构建他们的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
 }