Ich lerne Java gui. Die Art und Weise, wie ich gelernt habe, ein Fenster zu erstellen, ist, die Klasse JFrame
zu erben oder zu erweitern, und es ist gut, sie als JFrame
zu verwenden. Enthält alle Eigenschaften eines Fensters. Wenn ich diesem Fenster etwas hinzufügen möchte, muss ich die Methode add()
verwenden. Aber heute bin ich auf JPanel
gestoßen, die auch ein Fenster erstellt und wir kann Sachen durch jpanelObjec.add()
hinzufügen.
Was ist der Unterschied zwischen den beiden Methoden? Sind sie irgendwie verwandt?
Sie sollten die Klasse JFrame
nicht unnötig erweitern (nur wenn Sie der Klasse JFrame
zusätzliche Funktionen hinzufügen).
JFrame:
JFrame
erweitert Component
und Container
.
Es ist ein Container der obersten Ebene, der die Mindestanforderungen für ein Fenster darstellt. Dies beinhaltet Border
s, Skalierbarkeit (kann die Größe der JFrame
geändert werden?), Titelleiste, Steuerelemente (minimieren/maximieren erlaubt?) Und Ereignisbehandlungsroutinen für verschiedene Event
s wie windowClose
, windowOpened
usw.
JPanel:
JPanel
erweitert Component
, Container
und JComponent
Es ist eine generische Klasse, die verwendet wird, um andere Component
zusammenzufassen.
Dies ist nützlich, wenn Sie mit LayoutManager
arbeiten, z. GridLayout
f.i fügt Komponenten zu verschiedenen JPanel
hinzu, die dann zu JFrame
hinzugefügt werden, um die GUI zu erstellen. Es wird in Bezug auf Layout
und Wiederverwendbarkeit leichter zu handhaben sein.
Dies ist auch nützlich, wenn Sie in Swing malen/zeichnen, paintComponent(..)
überschreiben und natürlich die volle Freude an der doppelten Pufferung haben.
Eine Swing-GUI kann ohne einen Container der obersten Ebene wie (JWindow
, Window
, JFrame
Frame
oder Applet
) nicht existieren existieren ohne JPanel
s.
JFrame
ist das Fenster; Es kann eine oder mehrere JPanel
Instanzen enthalten. JPanel
ist nicht das Fenster.
Sie benötigen ein Swing-Tutorial: