ich mache einen Physik-Simulator zum Spaß und ich war oben Grafiken Tutorials, wenn ich versuchte, den Unterschied zwischen all diesen J's herauszufinden. Könnte jemand näher auf sie eingehen oder vielleicht einen Link zu einer hilfreichen Quelle geben?Unterschied zwischen JPanel, JFrame, JComponent und JApplet
Antwort
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.
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.
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.
- 1. JComponent nicht zu JPanel zeichnen
- 2. Repaint() JFrame und JPanel
- 3. JComponent wird nicht in JPanel gezeichnet
- 4. JApplet zu JFrame (oder AWT-Rahmen) hinzufügen
- 5. JPanel vs JFrame in Java
- 6. Konvertieren eines JFrame in ein JApplet
- 7. Zeichnen über ein JPanel und Hinzufügen der JPanel zu JFrame
- 8. Hinzufügen von JPanel zu JFrame
- 9. repaint() -Methode in JFrame oder Jpanel?
- 10. JPanel auf einem JPanel in einem JFrame wird nicht angezeigt
- 11. Ich kann unter JPanel in JPanel in JFrame nicht sehen
- 12. Java - Unterschied zwischen alter und neuer JFrame-Größe
- 13. JTable für JPanel mit multiple type JComponent (Swing)
- 14. Größe eines Jframe im Jpanel-Programm festlegen?
- 15. Von JFrame zu JPanel in Netbeans
- 16. Ein transparentes JPanel über einen JFrame machen
- 17. Hinzufügen JPanel zu JFrame hat nicht funktioniert
- 18. Ändern Sie JFrame (ohne Layout) zu JPanel
- 19. Starten JFrame von einer Schaltfläche
- 20. Wie mache ich einen modalen JFrame oder eine andere JComponent?
- 21. Wie JFrame Hintergrund und JPanel transparent mit nur Bild zeigt
- 22. Was ist die Beziehung zwischen ContentPane und JPanel?
- 23. Unterschied zwischen JFrame.repaint() und JPanel.repaint()
- 24. PApplet integrieren intp JApplet
- 25. Java-Grafik JApplet
- 26. java, malen JPanel, die in einem anderen JPanel ist
- 27. Alternate zwischen gefüllten und Umriss-Rechteck in JApplet
- 28. Korrekter Weg, um JFrame mit einem JPanel zu initialisieren
- 29. Nullpointer JApplet mit getClass() getResource
- 30. Trouble Drawing In JPanel
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
Ich möchte darauf hinweisen, dass JFrame JComponent oder JContainer nicht erweitert, sondern java.awt.Container und java.awt.Component in dieser Reihenfolge. –
@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. –