2010-04-01 6 views
7

Al crear un nuevo proyecto en netbeans, si selecciono la aplicación de escritorio JAVA, crea un código que NO RECONOCTO EN ABSOLUTO como lo que aprendí en swing.Editor de GUI de Netbeans que genera su propio código incomprensible

Importa paquetes tales como:

org.jdesktop.application.SingleFrameApplication; 

también, la declaración de main() tiene el siguiente aspecto:

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

Esto realmente no tiene ningún sentido a mi conocimiento de JFrame, JPanel etc.

Si trato de codificar una aplicación netbeans desde cero, puedo escribir mi propia aplicación swing PERO NO PUEDO ENCONTRAR EL EDITOR GUI.

  • ¿Cómo llevo el editor GUI al crear aplicaciones Java desde cero?
  • ¿Alguien me puede explicar esta org.jdesktop.application.SingleFrameApplication y otras clases?

Por favor ayuda. Esto es realmente frustrante

Respuesta

23

Puede que haya seleccionado inadvertidamente Java Desktop Application

Crea un esqueleto de una aplicación de escritorio basado en el Swing Application Framework (JSR 296). Esta plantilla proporciona una infraestructura de aplicaciones básica, como una barra de menú, persistencia del estado de la ventana y barra de estado. Con esta plantilla, también puede generar código para crear una interfaz GUI para una tabla de base de datos.

En lugar de Java Application

Crea una nueva aplicación Java SE en un proyecto IDE estándar. También puedes generar una clase principal en el proyecto. Los proyectos estándar usan una secuencia de comandos Ant build generada por IDE para construir, ejecutar y depurar su proyecto.

Addendum: Use File > New File > Java GUI Forms para agregar contenedores de alto nivel, p. un adjunto JPanel, que se puede crear una instancia del método main()run().

Por ejemplo, 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); 
      } 
     }); 
    } 
} 

Y un NewJPanel incorporado en el editor de interfaz gráfica de usuario (nota "código generado"):

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

Véase también [* Uso del Swing Application Framework (JSR 296) *] (http://java.sun.com/developer/technicalArticles/javase/swingappfr/). – trashgod

1

Encontrará más información sobre org.jdesktop.application.SingleFrameApplicationhere. Breve resumen, sin embargo: esto es parte de Swing Application Framework. Matisse (ahora llamado Java Swing GUI Builder) trabaja, AFAIK, estrictamente con el marco de aplicación, no con las aplicaciones generales de Swing. Básicamente, si trabajas con Swing crudo, estás más o menos solo.

+0

-1 porque ...? ¿Solo un color de cortesía aquí antes de tirar un turd? –

+0

Supongo que el voto negativo fue porque la respuesta no es del todo correcta. Matisse no solo trabaja con el Swing Application Framework, también se puede usar con Swing 'en bruto', y estoy bastante seguro de que los chicos de NetBeans lo usan para construir sus GUIs. –

Cuestiones relacionadas