Netbeans GUI editor generating its own incomprehensible code

后端 未结 2 1182
不知归路
不知归路 2020-11-22 01:16

When creating a new project in netbeans, if i select JAVA Desktop application, it creates some code which I DO NOT RECOGNISE AT ALL as what i had learnt in swing.

It

相关标签:
2条回答
  • 2020-11-22 01:43

    You'll find more about org.jdesktop.application.SingleFrameApplication here. Brief precis, however: this is part of the Swing Application Framework. Matisse (now called the Java Swing GUI Builder) works, AFAIK, strictly with the application framework, not with general Swing applications. Basically, if you're working with raw Swing, you're pretty much on your own.

    0 讨论(0)
  • 2020-11-22 01:48

    You may have inadvertently selected Java Desktop Application

    Creates a skeleton of a desktop application based on the Swing Application Framework (JSR 296). This template provides basic application infrastructure such as a menu bar, persisting of window state, and status bar. With this template, you can also generate code to create a GUI interface for a database table.

    Rather than Java Application

    Creates a new Java SE application in a standard IDE project. You can also generate a main class in the project. Standard projects use an IDE-generated Ant build script to build, run, and debug your project.

    Addendum: Use File > New File > Java GUI Forms to add high-level containers, e.g. an enclosing JPanel, that can be instantiated from main()'s run() method.

    For example, 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);
                }
            });
        }
    }
    

    And a NewJPanel built in the GUI editor (note "Generated Code"):

    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
     }
    
    0 讨论(0)
提交回复
热议问题