Verwenden Sie das gleiche Prinzip wie für alle Java-Klassen. Wenn Sie das Verhalten oder die Funktionalität ändern oder erweitern, dann erweitern Sie auf jeden Fall JPanel
o JFrame
. Die Kunst besteht darin, sorgfältig zu überlegen und zu entscheiden, ob Sie wirklich etwas hinzufügen. Unter Die meisten Fälle, in denen ich sehe, wie Menschen ihre JFrame
es ist unnötig und falsch;
public class MyFrame extends JFrame {
public static void main(String[] args) {
new MyFrame().setVisible(true);
}
}
Warum sollte man verlängern? JFrame
? Sie haben nichts hinzugefügt! Die Komposition ist eine viel bessere Option.
Erweitern Sie JPanel
ist ein wenig anders. JPanel ist eine ziemlich abstrakte Idee, seine nur ein generischer Container für andere Komponenten. IMHO ist es gültig, Unterklasse JPanel
um ein konkreteres Panel zu erstellen, das Sie dann in Ihrer Anwendung verwenden. Es fördert OOP und Kapselung.
Angenommen, Ihr GUI hat zwei Hauptanzeigebereiche: einen mit einigen Schaltflächen/Steuerungen/Eingaben und einen anderen, der die Ausgabe (z. B. in einem Textbereich) anzeigt. Es ist durchaus akzeptabel, die Unterklasse JPanel
um ein ControlPanel zu erstellen, das die Schaltflächen/Steuerelemente/Eingaben enthält. Dadurch wird der gesamte Code in ein nettes, übersichtliches Modul verschoben, das die Klasse aufräumt, die das Hauptmodul enthält und behandelt JFrame
.