249 votes

Quelle est la différence entre swing et awt ?

Est quelqu'un peut-il s’il vous plaît m’expliquer quelle est la différence entre swing et awt ?

Y a-t-il des cas où l’awt est plus utile/conseillé d’utilisation que swing ou vice versa ?

260voto

skiphoppy Points 16563

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).

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 l'île de Java.

Parce que 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 Balancer 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 pouvez é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.

37voto

Access Denied Points 440

La base de la différence celle qui a déjà tout le monde mentionné est que l'On est de poids lourds et d'autres est le poids léger. Laissez-moi vous expliquer, bacially ce que le terme de poids lourds signifie est que lorsque vous utilisez les composants awt le code natif utilisé pour obtenir la vue de composant est généré par le Système d'Exploitation, c'est pourquoi elle le regard et la sensation de changements à partir de l'OS à l'OS. Où, comme dans le swing de ses composants, la responsabilité de la JVM pour générer la vue pour les composants. Une autre déclaration que j'ai vu, c'est que le swing est MVC basé et awt ne l'est pas.

18voto

cletus Points 276888

Swing vs AWT. Fondamentalement, AWT est venu en premier et est un ensemble de composants d’interface utilisateur de poids lourd (ce qui signifie qu’ils sont des wrappers pour les objets de système d’exploitation) alors que Swing construit au sommet de l’AWT avec un ensemble plus riche de composants légers.

Tout travail sérieux de Java UI se fait en Swing AWT pas, qui a été utilisé principalement pour les applets.

12voto

Nate Points 9879

Aussi loin que lorsque l'AWT peuvent être plus utiles que Swing -

  • vous pouvez cibler un ancien de la JVM ou une plate-forme qui ne supportent pas de Swing. Ce qui à vraiment entrer en jeu si vous avez été la construction Applets - vous voulu cible le plus petit dénominateur commun de sorte que les gens n'aient pas à installer une version plus récente du plugin Java. Je ne suis pas sûr de ce que les courants les plus largement installé la version du plug-in Java est - ce qui peut être différent aujourd'hui.
  • certaines personnes préfèrent le natif de l'apparence de l'AWT sur Swing " pas tout à fait la plate-forme des peaux. (Il y a de mieux parti 3e maternelle à la recherche de peaux de Swing implémentations BTW) Beaucoup de gens préfèrent utiliser AWT est FileDialog plus de Swing de FileChooser parce qu'il a donné à la plate-forme de dialogue fichier de la plupart des gens ont été utilisés plutôt que le "bizarre" personnalisé Swing.

8voto

deepika Points 31

Swing :

  1. Swing fait partie des classes java foundation.
  2. Composants Swing sont indépendants de la plate-forme.
  3. Composants Swing sont léger car swing est assis sur le dessus de l’awt.

AWT :

  1. AWT est appelée l’outil de la fenêtre Résumé.
  2. Les composants AWT sont dépendants de la plateforme.
  3. Les composants AWT sont lourds.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X