2010-04-01 4 views
7

Wenn ich ein neues Projekt in Netbeans, wenn ich JAVA Desktop-Anwendung auswählen, erstellt es einige Code, die ich nicht als alles, was ich gelernt hatte in Swing.Netbeans GUI-Editor generiert seinen eigenen unverständlichen Code

Es importiert Pakete wie:

org.jdesktop.application.SingleFrameApplication; 

auch die Erklärung für main() sieht wie folgt aus:

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

das wirklich macht keinen Sinn meines Wissens von JFrame, JPanel usw ..

Wenn ich versuche, eine Netbeans-Anwendung von Grund auf neu zu programmieren, kann ich meine eigene Swing-App schreiben, aber ich kann den GUI EDITOR nicht finden.

  • Wie bringe ich den GUI-Editor beim Erstellen von Java-Anwendung von Grund auf neu?
  • Kann mir jemand diese org.jdesktop.application.SingleFrameApplication und andere Klassen erklären?

Bitte helfen. Das ist wirklich frustrierend.

Antwort

23

Sie versehentlich Java Desktop Application

ein Skelett einer Desktop-Anwendung erstellt auf der Basis Swing Application Framework (JSR 296) ausgewählt haben. Diese Vorlage stellt eine grundlegende Anwendungsinfrastruktur bereit, z. B. eine Menüleiste, den Status des Fensters und die Statusleiste. Mit dieser Vorlage können Sie auch Code generieren, um eine GUI-Schnittstelle für eine Datenbanktabelle zu erstellen.

Statt Java Application

Erstellt eine neue Java-SE-Anwendung in einem Standard-IDE-Projekt. Sie können auch eine Hauptklasse im Projekt generieren. Standardprojekte verwenden ein IDE-generiertes Ant-Build-Skript zum Erstellen, Ausführen und Debuggen Ihres Projekts.

Zusatz: Verwenden Sie File > New File > Java GUI Forms, um High-Level-Container hinzuzufügen, z. Ein umschließendes JPanel, das von main() 's run() Methode instanziiert werden kann.

Zum Beispiel 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); 
      } 
     }); 
    } 
} 

Und ein NewJPanel im GUI-Editor gebaut (siehe "generierter 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

Siehe auch [* Verwenden des Swing Application Framework (JSR 296) *] (http://java.sun.com/developer/technicalArticles/javase/swingappfr/). – trashgod

1

Sie werden mehr über org.jdesktop.application.SingleFrameApplicationhere finden. Kurze Zusammenfassung: Dies ist Teil der Swing Application Framework. Matisse (jetzt Java Swing GUI Builder genannt) arbeitet, AFAIK, ausschließlich mit dem Anwendungsframework, nicht mit allgemeinen Swing-Anwendungen. Wenn du mit rohen Swing arbeitest, bist du ziemlich alleine.

+0

-1 weil ...? Nur ein höflicher Flush hier, bevor vielleicht ein Turd fallen gelassen wird? –

+0

Ich vermute der Downvote war, weil die Antwort nicht ganz korrekt ist. Matisse arbeitet nicht nur mit dem Swing Application Framework - es kann auch mit 'raw' Swing verwendet werden, und ich bin ziemlich sicher, dass die Jungs von NetBeans es benutzen, um ihre GUIs zu erstellen –

Verwandte Themen