Quelle est la différence entre Swing et AWT?
Quelqu'un peut-il svp m'expliquer quelle est la différence entre Swing et AWT?
Sont là tous les cas où l'AWT est plus utile/conseillé d'utiliser de la balançoire ou vice-versa?
Vous devez vous connecter pour publier un commentaire.
AWT est une interface Java natif du système de GUI code présent dans votre système d'exploitation. Il ne fonctionnera pas de la même manière sur tous les systèmes, bien qu'il essaie.
Swing est plus ou moins pure Java GUI. Il utilise AWT pour créer une fenêtre du système d'exploitation, puis les peintures des photos de boutons, les étiquettes de texte, des cases à cocher, etc., dans cette fenêtre et répond à toutes vos clics de souris, les entrées de clé, etc., de décider pour lui-même quoi faire plutôt que de laisser le système d'exploitation de la gérer. Ainsi, le Swing est 100% portable et qui est le même sur toutes les plateformes (même si il est skinnable et dispose d'un "pluggable look and feel" qui peut le faire paraître plus ou moins semblable à la façon dont le natif de windows et widgets look).
Ces sont très différentes approches de kits graphiques et ont beaucoup de conséquences. Une réponse complète à votre question serait d'essayer d'explorer l'ensemble de ceux-ci. 🙂 Voici un couple:
AWT est une croix-plate-forme de l'interface, donc, même si elle utilise l'OS sous-jacent ou de l'interface graphique native boîte à outils pour ses fonctionnalités, il ne fournit pas l'accès à tout ce que les trousses peuvent le faire. Avancé ou plus récent AWT widgets qui pourraient exister sur une plate-forme peut ne pas être pris en charge sur un autre. Caractéristiques de widgets qui ne sont pas les mêmes sur chaque plate-forme peut ne pas être pris en charge, ou, pire, ils peuvent fonctionner différemment sur chaque plate-forme. Les gens d'investir beaucoup d'efforts pour obtenir leur AWT applications de fonctionner de manière cohérente à travers les plates-formes - par exemple, ils peuvent essayer de faire des appels en code natif de Java.
Car AWT utilise l'interface graphique native widgets, votre système d'exploitation sait à leur sujet, et les poignées de les mettre en face les uns des autres, etc., alors que Swing widgets sont vides de sens pixels à l'intérieur d'une fenêtre à partir de votre système d'exploitation, du point de vue. Balançoire se gère vos widgets " mise en page et de les empiler. Le mélange AWT et Swing est hautement non pris en charge et peut conduire à de ridicules résultats, tels que natif des boutons qui obscurcissent tout le reste dans la boîte de dialogue dans laquelle ils résident, car tout ce qui a été créé avec Swing.
Parce que Swing essaie de faire tout ce qui est possible en Java d'autre que la raw routines graphiques fournis par une interface graphique native de la fenêtre, il l'habitude d'engager tout à fait à une perte de performance par rapport à l'AWT. De ce fait Swing malheureusement du temps à comprendre. Cependant, ce qui a considérablement diminué au cours des dernières années en raison de la plus optimisée des machines virtuelles, des machines plus rapides, et (je présume), l'optimisation de la Balançoire internes. Aujourd'hui, une application Swing peut courir assez vite pour être en état de fonctionner ou même zippy, et presque impossibles à distinguer à partir d'une application à l'aide des objets natifs. Certains diront qu'il a pris beaucoup trop de temps pour arriver à ce point, mais la plupart vont dire que c'est bien la peine.
Enfin, vous pourriez également vouloir vérifier la TOC (le GUI toolkit utilisé pour Eclipse, et une alternative à la fois AWT et Swing), qui est en quelque sorte un retour à l'AWT idée de l'accès natif Widgets via Java.
La base de la différence celle qui a déjà tout le monde mentionné est que l'on est poids lourd et d'autres est poids léger. Laissez-moi vous expliquer, en gros ce que le terme de poids lourds signifie est que lorsque vous utilisez les composants awt le code natif utilisé pour obtenir le point de vue de la composante est généré par le Système d'Exploitation, c'est pourquoi elle le regard et la sensation des changements à partir de l'OS à l'OS. Où, comme dans le swing de ses composants de la responsabilité de JVM pour générer la vue pour les composants. Une autre déclaration que j'ai vu, c'est que swing est MVC basé et awt ne l'est pas.
Swing vs AWT. Fondamentalement AWT est venu en premier et est un ensemble de poids lourd composants de l'INTERFACE utilisateur (ce qui signifie qu'ils sont des wrappers pour les objets système d'exploitation) alors que Swing construit sur le haut de l'AWT avec un ensemble plus riche de composants légers.
Graves Java UI travail est fait dans les Swing pas AWT, qui a été principalement utilisé pour les applets.
Autant que lors de l'AWT peuvent être plus utiles que Swing -
Plusieurs conséquences découlent de cette différence entre AWT et Swing.
AWT est une mince couche de code sur le dessus de l'OS, alors que le Swing est beaucoup plus grande.
Swing a aussi beaucoup des fonctionnalités plus riches. À l'aide de AWT, vous avez pour
mettre en œuvre beaucoup de choses vous-même, tout en Swing a construit dans. Pour
GUI-travail intensif, AWT se sent très primitive de travailler avec rapport de Swing.
Parce que Balancer implémente l'interface graphique de la fonctionnalité elle-même plutôt que de compter sur l'
l'OS hôte, il peut offrir un environnement plus riche sur toutes les plates-formes Java s'exécute sur.
AWT est plus limitée en fournissant les mêmes fonctionnalités sur toutes les plates-formes
parce que pas toutes les plateformes de mettre en œuvre le même-à la recherche des contrôles dans la même
façons.
Composants Swing sont appelés "léger" car ils ne nécessitent pas un
système d'exploitation natif objet de mettre en œuvre leur fonctionnalité.
JDialog
etJFrame
sontpoids lourd, parce qu'ils n'ont pairs. Pour que les composants comme
JButton
,JTextArea
, etc., sont légers parce qu'ils n'ont pas un OS pairs.Swing:
AWT:
suivez le modèle-vue-contrôleur(mvc).
AWT
1 . AWT occupe plus d'espace mémoire
2 . AWT est dépendant de la plate-forme
3 . AWT besoin javax.package awt
sautes d'
1 . Swing occupe moins d'espace mémoire
2 . Composant Swing est indépendant de la plateforme
3 . Swing nécessite javax.swing paquet