# jpanel oder jframe Formular



## famco (30. Mrz 2011)

Hallo, 
als Umsteiger arbeite ich mich gerade in Swing ein. Ich konnte auch schon ein kleines Formular gestalten und ausführen.
Jetzt ist mir aufgefallen, dass es sowohl jframe als auch jpanel - Formulare gibt. Da ich mit Swing noch keine Erfahrung habe, fällt es mir schwer zu entscheiden, wann ich die eine oder andere Variante verwenden soll.
Vielleicht könnt Ihr mir den einen oder anderen Tip geben. 
Danke


----------



## jwiesmann (30. Mrz 2011)

Panel übersetzen
Frame übersetzen

Vielleicht kommst du ja selbst darauf ...


----------



## André Uhres (30. Mrz 2011)

Hallo Famco,

JFrame und JPanel sind in der Tat beides Container, also Behälter für Oberflächenelemente.

JFrame ist aber ein top-level Container und wird von Window und Frame abgeleitet. Es wird auch als heavyweight bezeichnet, so wie JApplet, JDialog und JWindow.

JPanel ist dagegen kein eigenständiges Fenster. Es ist eine Swing Komponente, die von JComponent abgeleitet ist und nur innerhalb eines heavyweight Fensters (JFrame, JApplet, JDialog oder JWindow) existieren kann. Es wird auch als lightweight bezeichnet, wie alle Swing Komponenten, die von JComponent abgeleitet werden. Alle lightweight Komponenten können nur innerhalb eines heavyweight Fensters existieren.

Gruß,
André


----------



## famco (30. Mrz 2011)

Danke André,
das hat mir wirklich weiter geholfen. Also benutze ich die panels als container auf einer Form. Soweit so gut 
In Netbeans kann man direkt dem Projekt sowohl jFrame-Formulare (verstanden!) oder wahlweise ein jPanel-Formular hinzufügen, das ja eigentlich gar keine Top-Level-Container ist. Warum sind hier jPanels als Formulare erlaubt? Wie kann man das verwenden?

Danke


----------



## André Uhres (30. Mrz 2011)

In der Tat kann man mit NetBeans ein JPanel zu einem package hinzufügen, um es zu "designen". Du wirst jedoch feststellen, dass beim JPanel, im Gegensatz zum JFrame, keine main Methode generiert wird. Das ist so, weil JPanel kein eigenständiges Fenster ist. Das Hinzufügen dieses JPanels zu einem JFrame muss man dann von Hand machen(*). (Einfacher wäre es, zuerst ein JFrame anzulegen und dann ein JPanel zu diesem JFrame hinzuzufügen.)

Gruß,
André

(*) z.B. so: 
	
	
	
	





```
/** Creates new form NewJFrame */
public NewJFrame() {
    initComponents();
    add(new NewJPanel());
}
```


----------

