web-dev-qa-db-fra.com

Différence entre JPanel, JFrame, JComponent et JApplet

Je fais un simulateur de physique pour le plaisir et je cherchais des tutoriels graphiques lorsque j'ai essayé de comprendre la différence entre tous ces J. Quelqu'un peut-il les développer ou peut-être fournir un lien vers une source utile?

43
Andyroo

Ces classes sont des points d'extension communs pour les conceptions d'interface utilisateur Java. Tout d'abord, sachez qu'elles n'ont pas nécessairement grand-chose à voir directement entre elles, donc essayer de trouver une relation entre elles pourrait être contre-productif .

JApplet - Une classe de base qui vous permet d'écrire du code qui s'exécutera dans le contexte d'un navigateur, comme pour une page Web interactive. C'est cool et tout mais cela apporte des limitations qui est le prix pour jouer Nice dans le monde réel. Normalement, JApplet est utilisé lorsque vous souhaitez avoir votre propre interface utilisateur dans une page Web. Je me suis toujours demandé pourquoi les gens ne profitent pas des applets pour stocker l'état d'une session, donc aucune base de données ou cookies ne sont nécessaires.

JComponent - Une classe de base pour les objets qui ont l'intention d'interagir avec Swing.

JFrame - Utilisé pour représenter les éléments qu'une fenêtre devrait avoir. Cela inclut les bordures (redimensionnables o/n?), La barre de titre (nom de l'application ou autre message), les contrôles (minimiser/maximiser autorisé?) Et les gestionnaires d'événements pour divers événements système comme la `` fermeture de fenêtre '' (autoriser l'application à quitter encore?).

JPanel - Classe générique utilisée pour rassembler d'autres éléments. Ceci est plus important lorsque vous travaillez avec la disposition visuelle ou l'un des gestionnaires de disposition fournis, par exemple gridbaglayout, etc. Par exemple, vous avez une zone de texte plus grande que la zone que vous avez réservée. Placez la zone de texte dans un volet défilant et placez ce volet dans un JPanel. Ensuite, lorsque vous placez le JPanel, il sera plus facile à gérer en termes de disposition.

41
Kelly S. French

JFrame et JApplet sont des conteneurs de niveau supérieur. Si vous souhaitez créer une application de bureau, vous utiliserez JFrame et si vous prévoyez d'héberger votre application dans le navigateur, vous utiliserez JApplet.

JComponent est une classe abstraite pour tous les composants Swing et vous pouvez l'utiliser comme classe de base pour votre nouveau composant. JPanel est un simple composant utilisable que vous pouvez utiliser pour presque tout.

Comme il s'agit d'un projet amusant, la façon la plus simple pour vous est de travailler avec JPanel, puis de l'héberger dans JFrame ou JApplet. Netbeans a un concepteur visuel pour Swing avec des exemples simples.

19
aco

Il peut être utile de rechercher les classes sur Oracle. Par exemple:

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

Là, vous pouvez voir que JFrame étend JComponent et JContainer.

JComponent est un objet de base qui peut être dessiné, JContainer l'étend afin que vous puissiez y ajouter des composants. JPanel et JFrame étendent tous les deux JComponent car vous pouvez y ajouter des éléments. JFrame fournit une fenêtre, tandis que JPanel est juste un panneau qui va à l'intérieur d'une fenêtre. Si ça a du sens.

5
Ultimate Gobblement