Java >> Java tutorial >  >> Tag >> Swing

Forskellen mellem AWT og Swing

Java-programmører er ofte forvirrede over forskellen mellem AWT- og Swing-komponenter, funktionerne i AWT og Swing og funktionaliteterne af begge.

Mens Swing er en samling af programkomponenter, der har evnen til at udvikle grafisk brugergrænseflade (GUI) objekter, der er uafhængige af den anvendte platform, er AWT-komponenter platformafhængige og fungerer forskelligt på forskellige platforme.

Efterhånden som denne artikel skrider frem, vil læsere forstå definitionen af ​​Swing og AWT såvel som de vigtigste forskelle mellem de to i form af et sammenligningsdiagram og punkter ens.

AWT vs. Swing

Grundlag for differentiering Java AWT Java Swing
Platformafhængighed AWT-komponenter er afhængige af platformens art. Java swing-komponenter er ikke afhængige af platformens beskaffenhed. De er udelukkende scriptet i Java.
Vægtighed En sværvægter i karakter. For det meste lette svingkomponenter er designet til at sidde oven på AWT-komponenter og udføre deres opgaver. Disse komponenter er generelt lette, da de ikke behøver nogen native OS-objekter for at implementere deres funktionalitet. JFrame og Jdialog anses for at være sværvægtere, da de har en peer. Derfor anses komponenter som Jbutton, JtextArea osv. for at være lette, da de ikke opretholder nogen OS-peer.
Plugbar følelse og udseende AWT-komponenter understøtter ikke den pluggbare følelse og udseende. Java swing-komponenter giver støtte til den pluggbare følelse og udseende. Java swing API indeholder klasser såsom Jbutton, JtextField, JradioButton, Jcheckbox, JtextArea, Jmenu, JcolorChooser osv., der tilføjer yderligere funktionalitet til de objekter, der tegnes.

Antal komponenter AWT-komponenter er færre i antal sammenlignet med Swing-komponenter. Java Swing-komponenter er overbevisende og meget mere i antal. De er repræsenteret af lister, rulleruder, tabeller, faneruder, farvevælgere osv.
MVC (Model View Controller) MVC (Model View Controller)-modellen efterfølges ikke af AWT-komponenter, hvor modellen repræsenterer dataene, præsentationen repræsenterer visningen, og controlleren fungerer som broforbindelse mellem visningen og modellen. Swing-komponenter i Java er kendt for at følge MVC (Model View Controller), model.
Står for AWT's fulde form er værktøjssættet til abstrakte vinduer. Swing-komponenter i Java omtales også som JFC'er (Java Foundation Classes) .
Pakke påkrævet AWT-komponenter har brug for java.awt-pakken. Swing-komponenter i Java har brug for javax.swing-pakken.
Avancerede funktioner De avancerede funktioner afbildet af Swing-komponenter er ikke til stede i AWT-komponenter. Swing-komponenter viser adskillige avancerede funktioner såsom Jtabel, Jtabbed-rude osv. Disse avancerede funktioner er kun specifikke for Swing-komponenter.
Tilstedeværelse af jævnaldrende Der er 21 "peers" i AWT-komponenter. Der findes én peer for hver kontrol, og der er én peer til selve dialogen. Peers er i form af widgets, der tilbydes af operativsystemet. De kan være et knapobjekt eller et specifikt indtastningsfeltobjekt. Kun én peer er til stede i Swing i form af operativsystemets vinduesobjekt. Indtastningsfelterne, knapperne osv. udvikles af Swing-pakken direkte på den tegneflade, som vinduesobjektet tilbyder. Swing besidder flere koder på grund af netop denne grund. Knappen og deres adfærd skal implementeres separat. Værtsoperativsystemet kan ikke stole på til at udføre disse funktioner.
Funktionalitet AWT-komponenter fungerer som et tyndt lag af kodning, der ligger oven på operativsystemet. Swing-komponenter er meget større og tilbyder højere funktionalitetsniveauer.
Implementering Mange funktioner/funktioner i AWT-komponenter skal implementeres af koderen. Swing-komponenter har indbyggede funktioner til deres ydeevne.
Hukommelsesplads AWT-komponenter kræver og optager større hukommelsesplads. Swing-komponenter optager ikke så meget hukommelsesplads som AWT-komponenter.
Udførelseshastighed AWT-komponenter er langsommere end swing-komponenter med hensyn til ydeevne. Swing i Java er hurtigere end AWT i Java.

Hvad er AWT i JAVA

Abstract Window Toolkit (AWT) henviser til en samling af applikationsprogramgrænseflader (API'er) som bruges af Java-programmører til at skabe grafisk brugergrænseflade (GUI) genstande. Disse objekter er i form af rullepaneler, vinduer, knapper osv. Dette værktøjssæt er en væsentlig komponent iJava Foundation Classes (JFC) tilhørende Sun Microsystems, som er den virksomhed, der er ansvarlig for Javas oprindelse.

Simpelt Java AWT-eksempel

//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);
    }
}

Hvad er Swing i JAVA

Swing i Java refererer til en grafisk brugergrænseflade (GUI) i form af et let widget-værktøjssæt; værktøjssættet er pakket med widgets med rig funktionalitet.

Swing udgør en integreret del af Java Foundation Classes (JFC) og giver kodere flere nyttige pakker til udvikling af rige desktop-venlige applikationer i Java. De indbyggede kontroller i Swing består af billedknapper, træer, faneruder, farvevælgere, skydere, værktøjslinjer, tabeller osv.

Swing muliggør også oprettelse af tekstområder til visning af rig tekstformat (RTF) eller HTTP-objekter . Swing-komponenter er skrevet udelukkende i java og er derfor uafhængige af den platform, de arbejder på.

Simpelt Java-swing-eksempel

//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();
    } }


En vigtig forskel mellem Swing og AWT

  • En forståelse af de vigtigste forskelle mellem Java AWT og Swing hjælper meget med at hjælpe kodere med at bruge de mest passende komponenter, når og når det er nødvendigt.
  • Swing-gaver en mere eller mindre Java GUI. Swing-komponenter bruger AWT til at oprette et operativsystemvindue. Derefter tegner Swing knapper, etiketter, afkrydsningsfelter, tekstbokse osv. direkte på vinduet. Disse Swing-objekter er designet til at reagere på både nøgleindtastninger og museklik. Her kan brugere beslutte, hvad de gerne vil gøre i stedet for at lade operativsystemet håndtere de funktioner og funktionaliteter, der skal tages i brug. På den anden side bruger AWT, som er en grænseflade på tværs af platforme, OS eller native GUI-værktøjssættet til at aktivere dets funktionalitet.
  • En væsentlig forskel mellem AWT og Swing er, at AWT er tungvægts mens Sving komponenter erlette .
  • I tilfælde af AWT-komponenter , anvendes native koder til generering af visningskomponenter som leveret af OS. Dette er årsagen til udseendet og følelsen af ​​AWT-komponenter, der skifter fra en platform til en anden. Til sammenligning er JVM'en i tilfælde af Swing-komponenter i Java ansvarlig for at generere visningen for dele.

Konklusion

Denne tutorial hjælper brugere med at forstå funktionaliteten og funktionerne i begge for bedre udnyttelse af deres komponenter. Swing tilbyder rigere funktionalitet, er let og meget mere omfattende end AWT. Java-programmører, der ønsker at få adgang til indbyggede funktioner i stedet for at oprette dem på egen hånd, bør vælge Swing frem for AWT.

Derudover, hvis arbejdet på hånden er GUI-intensivt, ville AWT-komponenter give et allerførste udseende og følelse i forhold til deres Swing-modstykker. Dette skyldes, at Swing implementerer GUI-funktionaliteten alene i stedet for at være afhængig af værts-OS-platformen for det samme – så vælg mellem disse java-komponenter i overensstemmelse hermed for at opnå de bedste resultater.


No
Java tag