2010-08-16 14 views

Antwort

5

Sie könnten es nützlich finden, die Klassen auf Oracle suchen. ZB:

http://download.oracle.com/javase/1.4.2/docs/api/javax/swing/JFrame.html

Dort kann man sehen, dass JFrame JComponent und JContainer erstreckt.

JComponent ist ein grundlegendes Objekt, das gezeichnet werden kann. JContainer erweitert dies, sodass Sie Komponenten hinzufügen können. JPanel und JFrame erweitern beide JComponent, da Sie ihnen Dinge hinzufügen können. JFrame stellt ein Fenster zur Verfügung, während JPanel nur ein Fenster ist, das in ein Fenster hineingeht. Wenn das Sinn macht.

+3

Als eine Randnotiz ist die Vererbungskette mit einigen Swing-Komponenten lächerlich. Es neigt dazu, Code-Vervollständigung in IDEs unbrauchbar zu machen sowie Javadocs zu überladen. Sie müssen wirklich das Ding umschreiben – TheLQ

+1

Ich möchte darauf hinweisen, dass JFrame JComponent oder JContainer nicht erweitert, sondern java.awt.Container und java.awt.Component in dieser Reihenfolge. –

+1

@LucasMorgan Sie müssen JFrame weniger abhängig von Swing gemacht haben, als ich dachte. Da es AWT verwendet, frage ich mich, ob Sie einen JFrame in einem JApplet verwenden können. –

17

JFrame und JApplet sind Top-Level-Container. Wenn Sie eine Desktop-Anwendung erstellen möchten, verwenden Sie JFrame. Wenn Sie Ihre Anwendung im Browser hosten möchten, verwenden Sie JApplet.

JComponent ist eine abstrakte Klasse für alle Swing-Komponenten und Sie können sie als Basisklasse für Ihre neue Komponente verwenden. JPanel ist ein einfacher verwendbarer Component, den Sie für fast alles verwenden können.

Da dies zum Spaß Projekt ist, ist die einfachste Möglichkeit für Sie mit JPanel arbeiten und dann hostet es in JFrame oder JApplet. Netbeans hat visuellen Designer für Swing mit einfachen Beispielen.

38

Diese Klassen sind gemeinsame Erweiterungspunkte für Java-UI-Designs. Zunächst einmal, erkennen, dass sie nicht unbedingt direkt miteinander viel zu tun haben, also könnte es kontraproduktiv sein, eine Beziehung zwischen ihnen zu finden.

JApplet - Eine Basisklasse, mit der Sie Code schreiben können, der im Kontext eines Browsers wie für eine interaktive Webseite ausgeführt wird. Das ist cool und alles, aber es bringt Einschränkungen mit sich, was der Preis dafür ist, dass es in der realen Welt gut spielt. Normalerweise wird JApplet verwendet, wenn Sie Ihre eigene Benutzeroberfläche auf einer Webseite haben möchten. Ich habe mich immer gewundert, warum Leute Applets nicht nutzen, um den Status für eine Sitzung zu speichern, so dass keine Datenbank oder Cookies benötigt werden.

JComponent - Eine Basisklasse für Objekte, die mit Swing interagieren möchten.

JFrame - Wird verwendet, um das Zeug darzustellen, das ein Fenster haben sollte. Dazu gehören Rahmen (änderbar y/n?), Titelleiste (App-Name oder andere Nachricht), Steuerelemente (Minimieren/Maximieren erlaubt?) Und Event-Handler für verschiedene Systemereignisse wie "Fenster schließen" (App noch beenden?).

JPanel - Generische Klasse zum Sammeln anderer Elemente. Dies ist bei der Arbeit mit dem visuellen Layout oder einem der bereitgestellten Layout-Manager, z. gridbaglayout usw. Sie haben beispielsweise ein Textfeld, das größer ist als der von Ihnen reservierte Bereich. Setzen Sie das Textfeld in einen Bildlaufbereich und fügen Sie dieses in ein JPanel ein. Wenn Sie das JPanel dann platzieren, wird es in Bezug auf das Layout besser handhabbar sein.

Verwandte Themen