Java >> Tutoriel Java >  >> Tag >> Swing

Différence entre AWT et Swing

Les programmeurs Java sont souvent confus quant à la différence entre les composants AWT et Swing, les fonctionnalités d'AWT et de Swing, et les fonctionnalités des deux.

Alors que Swing est une collection de composants de programme qui possèdent la capacité de développer une interface utilisateur graphique (GUI) objets indépendants de la plate-forme utilisée, les composants AWT dépendent de la plate-forme et fonctionnent différemment sur différentes plates-formes.

Au fur et à mesure que cet article progresse, les lecteurs comprendront la définition de Swing et AWT ainsi que les principales différences entre les deux sous la forme d'un tableau de comparaison et de points similaires.

AWT contre Swing

Base de différenciation AWT Java Java Swing
Dépendance à la plate-forme Les composants AWT dépendent de la nature de la plate-forme. Les composants Java Swing ne dépendent pas de la nature de la plate-forme. Ils sont purement scriptés en Java.
Poids Un poids lourd de caractère. Généralement légers, les composants de balançoire sont conçus pour s'asseoir sur les composants AWT et effectuer leurs tâches. Ces composants sont généralement légers car ils n'ont besoin d'aucun objet OS natif pour implémenter leurs fonctionnalités. JFrame et Jdialog sont considérés comme des poids lourds car ils possèdent un pair. Par conséquent, les composants tels que Jbutton, JtextArea, etc. sont considérés comme légers car ils ne maintiennent aucun pair de système d'exploitation.
Sentiment et apparence enfichables Les composants AWT ne prennent pas en charge la sensation et l'apparence enfichables. Les composants Java Swing offrent une prise en charge de la sensation et de l'apparence enfichables. L'API swing Java contient des classes telles que Jbutton, JtextField, JradioButton, Jcheckbox, JtextArea, Jmenu, JcolorChooser, etc. qui ajoutent des fonctionnalités supplémentaires aux objets dessinés.

Nombre de composants Les composants AWT sont moins nombreux que les composants Swing. Les composants Java Swing sont convaincants et bien plus nombreux. Ils sont représentés par des listes, des volets de défilement, des tableaux, des volets à onglets, des sélecteurs de couleurs, etc.
MVC (contrôleur de vue de modèle) Le MVC (Model View Controller) n'est pas suivi par les composants AWT dans lesquels le modèle représente les données, la présentation représente la vue et le contrôleur sert d'interface de pont entre la vue et le modèle. Les composants Swing en Java sont connus pour suivre le MVC (Model View Controller), modèle.
Représente Le formulaire complet AWT est la boîte à outils des fenêtres abstraites. Les composants Swing en Java sont également appelés JFC (Java Foundation Classes) .
Package requis Les composants AWT ont besoin du package java.awt. Les composants Swing en Java ont besoin du package javax.swing.
Fonctionnalités avancées Les fonctionnalités avancées représentées par les composants Swing ne sont pas présentes dans les composants AWT. Les composants Swing décrivent plusieurs fonctionnalités avancées telles que Jtabel, le volet Jtabbed, etc. Ces fonctionnalités avancées sont spécifiques uniquement aux composants Swing.
Présence de pairs Il y a 21 "pairs" dans les composants AWT. Il existe un pair pour chaque contrôle, et il y a un pair pour le dialogue lui-même. Les pairs se présentent sous la forme de widgets proposés par le système d'exploitation. Il peut s'agir d'un objet bouton ou d'un objet champ de saisie spécifique. Un seul pair est présent dans Swing sous la forme de l'objet fenêtre du système d'exploitation. Les champs de saisie, boutons, etc. sont développés par le package Swing directement sur la surface de dessin offerte par l'objet fenêtre. Swing possède plus de codes pour cette raison même. Le bouton et son comportement doivent être implémentés séparément. On ne peut pas compter sur le système d'exploitation hôte pour exécuter ces fonctions.
Fonctionnalité Les composants AWT servent de fine couche de codage qui se trouve au-dessus du système d'exploitation. Les composants Swing sont beaucoup plus grands et offrent des niveaux de fonctionnalité plus élevés.
Mise en œuvre De nombreuses fonctionnalités/fonctions des composants AWT doivent être implémentées par le codeur. Les composants Swing fournissent des fonctions intégrées pour leurs performances.
Espace mémoire Les composants AWT nécessitent et occupent un espace mémoire plus important. Les composants Swing n'occupent pas autant d'espace mémoire que les composants AWT.
Vitesse d'exécution Les composants AWT sont plus lents que les composants swing en termes de performances. Swing en Java est plus rapide qu'AWT en Java.

Qu'est-ce qu'AWT en JAVA

Boîte à outils de fenêtre abstraite (AWT) fait référence à une collection d'interfaces de programme d'application (API) qui sont utilisés par les programmeurs Java pour la création d'interface utilisateur graphique (GUI) objets. Ces objets se présentent sous la forme de barres de défilement, de fenêtres, de boutons, etc. Cette boîte à outils est un composant essentiel de Java Foundation Classes (JFC) appartenant à Sun Microsystems, qui est la société responsable de l'origine de Java.

Exemple Java AWT simple

//Swaping two Number using Java AWT
package swap;
import java.awt.*;
import java.awt.event.*;

public class swap
{
    public static void main(String args[])
    {
        Frame f = new Frame("My Frame");

        Label l1 = new Label ("First");
        Label l2 = new Label ("Second");

        TextField t1 = new TextField(20);
        TextField t2 = new TextField(20);

        Button b = new Button("OK");

        f.add(l1);
        f.add(t1);
        f.add(l2);
        f.add(t2);
        f.add(b);

        b.addActionListener(new ActionListener () {
            public void actionPerformed(ActionEvent ae)
            {
                String temp = t1.getText();
                t1.setText(t2.getText());
                t2.setText(temp);
            }
        });

        f.layout(new FlowLayout());
        f.setSize(300,300);
        f.setVisible(true);
    }
}

Qu'est-ce que Swing en JAVA

Swing en Java fait référence à une interface utilisateur graphique (GUI) sous la forme d'une boîte à outils de widgets légers ; la boîte à outils est fournie avec des widgets aux fonctionnalités riches.

Swing fait partie intégrante des Java Foundation Classes (JFC) et fournit aux codeurs plusieurs packages utiles pour le développement d'applications riches et conviviales en Java. Les contrôles intégrés dans Swing comprennent des boutons d'image, des arbres, des volets à onglets, des sélecteurs de couleurs, des curseurs, des barres d'outils, des tableaux, etc.

Swing permet également la création de zones de texte pour l'affichage d'objets au format RTF (RTF) ou HTTP . Les composants Swing sont écrits uniquement en Java et sont donc indépendants de la plate-forme sur laquelle ils fonctionnent.

Exemple simple d'oscillation Java

//SWAPing

import javax.swing.*;
import java.awt.event.*;

public class swap implements ActionListener{
    JTextField tf1,tf2;
    JButton b1;
    swap(){
        JFrame f= new JFrame();
        tf1=new JTextField();
        tf1.setBounds(50,50,150,20);
        tf2=new JTextField();
        tf2.setBounds(50,100,150,20);
        b1=new JButton("Ok");
        b1.setBounds(50,200,50,50);
        b1.addActionListener(this);
        f.add(tf1);f.add(tf2);f.add(b1);
        f.setSize(300,300);
        f.setLayout(null);
        f.setVisible(true);
    }
     public void actionPerformed(ActionEvent e) {
        String temp = t1.getText();
        t1.setText(t2.getText());
        t2.setText(temp);
    }
    public static void main(String[] args) {
        new swap();
    } }


Une différence clé entre Swing et AWT

  • La compréhension des principales différences entre Java AWT et Swing aide grandement les codeurs à utiliser les composants les plus appropriés en fonction des besoins.
  • Swing présente une interface graphique Java plus ou moins. Les composants Swing utilisent AWT pour créer une fenêtre de système d'exploitation. Après cela, Swing dessine des boutons, des étiquettes, des cases à cocher, des zones de texte, etc. directement sur la fenêtre. Ces objets Swing sont conçus pour répondre à la fois aux entrées de touches et aux clics de souris. Ici, les utilisateurs peuvent décider de ce qu'ils aimeraient faire plutôt que de laisser le système d'exploitation gérer les fonctionnalités à utiliser. D'autre part, AWT, étant une interface multiplateforme, utilise le système d'exploitation ou la boîte à outils de l'interface graphique native pour activer ses fonctionnalités.
  • Une différence essentielle entre AWT et Swing est que AWT est un poids lourd tout en swing les composants sont légers .
  • Dans le cas des composants AWT , les codes natifs sont utilisés pour la génération des composants de vue fournis par le système d'exploitation. C'est la raison pour laquelle l'aspect et la convivialité des composants AWT changent d'une plate-forme à l'autre. En comparaison, dans le cas des composants Swing en Java, la JVM est responsable de la génération de la vue pour les pièces.

Conclusion

Ce didacticiel aide les utilisateurs à comprendre les fonctionnalités et les caractéristiques des deux pour une meilleure utilisation de leurs composants. Swing offre des fonctionnalités plus riches, est léger et beaucoup plus étendu qu'AWT. Les programmeurs Java désireux d'accéder aux fonctions intégrées plutôt que de les créer eux-mêmes devraient opter pour Swing plutôt que AWT.

De plus, dans le cas où le travail en cours est intensif en termes d'interface graphique, les composants AWT donneraient un tout premier aspect par rapport à leurs homologues Swing. En effet, Swing implémente la fonctionnalité de l'interface graphique par elle-même plutôt que de dépendre de la plate-forme du système d'exploitation hôte pour la même chose. Choisissez donc entre ces composants Java en conséquence pour obtenir les meilleurs résultats.


No
Balise Java