Différence entre JPanel, JFrame, JComponent et JApplet

je fais un simulateur de physique pour le plaisir et je regardais des tutoriels graphiques quand j'ai essayé de comprendre la différence entre tous ces J. Quelqu'un peut-il préciser votre pensée ou peut-être fournir un lien vers une source utile?

42
demandé sur Little Helper 2010-08-17 02:21:10

3 réponses

ces classes sont des points d'extension communs pour les conceptions Java UI. Tout d'abord, réalisez qu'ils n'ont pas nécessairement beaucoup à faire les uns avec les autres directement, donc essayer de trouver une relation entre eux pourrait être contre-productif.

JApplet - Une classe de base qui vous permet d'écrire du code qui sera exécuté dans le contexte d'un navigateur, comme pour une page web interactive. C'est cool et tout mais il apporte des limites qui est le prix à payer pour jouer nice dans le réel monde. Normalement JApplet est utilisé quand vous voulez avoir votre propre UI dans une page web. Je me suis toujours demandé pourquoi les gens ne profitent pas d'applets pour stocker state pour 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 le Swing.

JFrame - Utilisé pour représenter les choses, une fenêtre devrait avoir. Cela inclut les frontières (resizable o / n?), titlebar (App name ou autre message), contrôles (minimiser/maximiser permis?), et des gestionnaires d'événements pour divers événements du système comme 'window close' (permettre à l'application de sortir encore?).

Composite - classe générique utilisée pour regrouper d'autres éléments. Cela est plus important avec le travail avec la disposition visuelle ou l'un des directeurs de disposition fournis par exemple gridbaglayout, etc. Par exemple, vous avez une boîte de texte qui est plus grand que le secteur que vous avez réservé. Mettez la boîte de texte dans une vitre de défilement et mettez cette vitre dans un Un composite. Puis lorsque vous placez le Composite, il sera plus facile à gérer en termes de mise en page.

40
répondu Kelly S. French 2010-08-16 22:47:37

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

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

puisque c'est pour le projet fun, la façon la plus simple pour vous est de travailler avec JPanel et ensuite héberger à l'intérieur de JFrame ou JApplet. Netbeans a designer visuel pour Swing avec des exemples simples.

18
répondu aco 2010-08-16 22:43:23

vous pourriez trouver utile de chercher les classes sur oracle. Par exemple:

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

vous pouvez voir que JFrame étend JComponent et JContainer.

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

5
répondu Ultimate Gobblement 2010-08-16 22:27:39