Différences entre les composants et poids léger / lourd
Quelle est la différence entre un Composite et de JFrame et de la relation à l'léger, poids lourd?
source d'informationauteur Bulent
Vous devez vous connecter pour publier un commentaire.
Quelle est la différence entre un Composite et de JFrame et de la relation à l'léger, poids lourd?
source d'informationauteur Bulent
Vous devez vous connecter pour publier un commentaire.
Un composite est un conteneur qui permet de mettre plusieurs composants de l'INTERFACE utilisateur ensemble. JFrame est une fenêtre écrite à l'aide de Swing.
Tous les composants Swing sont soi-disant "lightwight" composants parce qu'ils sont écrits en java. Par exemple, si vous exécutez l'application Swing et d'essayer de l'analyser à l'aide de l'INTERFACE utilisateur outil d'analyse (par exemple, WinSpy dans windows) vous voyez un seul élément: la fenêtre (JFrame). Tous les autres composants sont issus de l'OS de point de vue.
Poids lourd de l'API AWT portable utilise des éléments fournis par l'OS. Depuis java doit être portable entre les différents système d'exploitation AWT est très limitée. Il implémente uniquement le sous-ensemble minimal d'éléments de l'écran pris en charge par toutes les plates-formes. Cependant, l'AWT éléments sont mappés directement à la plate-forme appropriée éléments, de sorte que l'INTERFACE utilisateur de l'outil de recherche de les voir. Ces éléments sont nommés "poids lourd".
Poids lourd de composants comme des "AWT" les composants doivent être dessinés à l'aide de l'interface graphique native sur une plate-forme spécifique.
Où des composants plus légers comme "Balancer" les composants sont attirés par java et ne comptez pas sur l'interface graphique native.
Une JFrame est un Swing récipient avec un boîtier d'interface, et peut être une application autonome (il a le dessus de la boîte avec des capacités afin de minimiser, maximiser et de sortie), tandis que le Composite est tout un JFrame est (un Swing conteneur), moins la capacité à être autonome. Pour un Composite de travailler, il doit être à l'intérieur de quelque chose comme une image, comme une JFrame.
L'autre réponse a une bonne définition de l'léger et poids lourd de composants.
utilisation:
J'utilise JPanels dans JFrames d'exécuter facilement les programmes multithread qui intègrent l'ensemble (j'ai un Composite classe runnable à l'intérieur de ma classe qui étend la classe JFrame, je lance ce que son propre thread et le Composite de classe peut changer la valeur des variables dans la classe JFrame). Je l'utilise pour obtenir plus facilement les différents threads d'interagir les uns avec les autres.
**Vous pouvez avoir plusieurs JPanels dans une JFrame.
La différence fondamentale entre Swing et AWT est que Swing Api sont purement bibliothèques Java c'est à dire qu'ils ne sont pas du tout dépendra sur les bibliothèques natives pour dessiner des éléments graphiques. En raison de cette caractéristique qu'ils fournissent une apparence cohérente sur toutes les plateformes. AWT bibliothèques ont besoin de l'appui des autochtones bibliothèques graphiques et de certains de leurs composants GUI regard différent sur différentes plates-formes. En outre, les composants Swing sont pas intrinsèquement Thread-safe, vous ont explicitement à écrire synchronisé code de manipuler ou de les redessiner alors que AWT composants peuvent être de confiance dans un environnement multithread. Les Composants AWT sont appelés lourds composants en raison de leur dépendance à l'égard des bibliothèques natives. Composants Swing sont appelés léger en raison de leur indépendance, de bibliothèques natives. Par conséquent Swing opérations sont beaucoup plus rapide parce que chaque opération est prise en charge par le Java runtime env et aucune délégation d'événements ou de commandes pour les bibliothèques natives est nécessaire.