J'apprends Java gui. La façon dont j'ai appris à créer une fenêtre consiste à hériter ou à étendre la classe JFrame
et il est bon de l'utiliser, comme JFrame
contient toutes les propriétés d'une fenêtre. Maintenant, si je veux ajouter quelque chose à cette fenêtre, je dois utiliser la méthode add()
. Mais aujourd'hui, je suis tombé sur JPanel
qui crée également une fenêtre et nous peut ajouter des choses par jpanelObjec.add()
.
Quelle est la différence entre les deux méthodes? Sont-ils en quelque sorte liés?
Vous ne devez pas étendre inutilement la classe JFrame
(uniquement si vous ajoutez des fonctionnalités supplémentaires à la classe JFrame
.)
JFrame:
JFrame
étend Component
et Container
.
C'est un conteneur de niveau supérieur utilisé pour représenter les exigences minimales pour une fenêtre. Ceci inclut Border
s, la redimensionnement (le JFrame
est-il redimensionnable?), La barre de titre, les contrôles (minimiser/maximiser?) Et les gestionnaires d’événements pour divers Event
s comme windowClose
, windowOpened
etc.
JPanel:
JPanel
étend Component
, Container
et JComponent
C'est une classe générique utilisée pour regrouper d'autres Component
s.
C'est utile lorsque vous travaillez avec LayoutManager
s GridLayout
f.i en ajoutant des composants à différents JPanel
s qui seront ensuite ajoutés au JFrame
pour créer le gui. Ce sera plus gérable en termes de Layout
et de réutilisation.
Il est également utile pour peindre/dessiner dans Swing, de remplacer paintComponent(..)
et d’avoir toutes les joies du double tampon.
Une interface graphique Swing ne peut pas exister sans un conteneur de niveau supérieur tel que (JWindow
, Window
, JFrame
Frame
ou Applet
), existe sans JPanel
s.
JFrame
est la fenêtre; il peut contenir une ou plusieurs instances JPanel
. JPanel
est pas la fenêtre.
Vous avez besoin d'un tutoriel Swing: