2010-04-01 17 views
7

Quando si crea un nuovo progetto in netbeans, se si seleziona l'applicazione JAVA Desktop, crea un codice che NON RICONOSCONO A TUTTI come quello che avevo imparato nello swing.Editor di GUI Netbeans che genera il proprio codice incomprensibile

importa pacchetti come ad esempio:

org.jdesktop.application.SingleFrameApplication; 

anche, la dichiarazione di main() si presenta così:

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

Questo in realtà non ha alcun senso per la mia conoscenza del JFrame, JPanel ecc.

Se provo a codificare un'applicazione netbeans da zero, posso scrivere la mia app swing ma NON POSSO TROVARE IL GUIDATORE.

  • Come portare l'editor GUI durante la creazione di un'applicazione java da zero?
  • Qualcuno può spiegarmi questo org.jdesktop.application.SingleFrameApplication e altre classi?

Si prega di aiuto. Questo è davvero frustrante.

risposta

23

Potreste aver inavvertitamente selezionato Java Desktop Application

Crea uno scheletro di un'applicazione desktop basata sul Swing Application Framework (JSR 296). Questo modello fornisce un'infrastruttura applicativa di base come una barra dei menu, la permanenza dello stato della finestra e la barra di stato. Con questo modello, è anche possibile generare codice per creare un'interfaccia GUI per una tabella di database.

Piuttosto che Java Application

Crea una nuova applicazione Java SE in un progetto standard IDE. Puoi anche generare una classe principale nel progetto. I progetti standard utilizzano uno script di build Ant generato da IDE per creare, eseguire ed eseguire il debug del progetto.

Addendum: utilizzare File > New File > Java GUI Forms per aggiungere contenitori di livello elevato, ad es. un allegato JPanel, che può essere istanziato dal metodo run() .

Per esempio, 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); 
      } 
     }); 
    } 
} 

E un NewJPanel costruito nel editor di GUI (nota "Generated Codice"):

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

Vedere anche [* Utilizzo di Swing Application Framework (JSR 296) *] (http://java.sun.com/developer/technicalArticles/javase/swingappfr/). – trashgod

1

Troverete di più su org.jdesktop.application.SingleFrameApplicationhere. Breve precisazione, tuttavia: questo fa parte dello Swing Application Framework. Matisse (ora chiamato Java Swing GUI Builder) funziona, AFAIK, rigorosamente con il framework dell'applicazione, non con le applicazioni Swing generali. Fondamentalmente, se stai lavorando con Swing grezzo, sei praticamente da solo.

+0

-1 perché ...? Solo una boccata di cortesia qui prima di far cadere uno stronzo forse? –

+0

Immagino che il downvote sia perché la risposta non è del tutto corretta. Matisse non funziona solo con lo Swing Application Framework - può essere usato anche con l'oscillazione "raw", e sono sicuro che i ragazzi di NetBeans lo usano per costruire le loro GUI –

Problemi correlati