Java AWT (Abstracte venstertoolkit) is een API om een grafische gebruikersinterface (GUI) of op Windows gebaseerde applicaties te ontwikkelen op Java.
Java AWT-componenten zijn platformafhankelijk, dat wil zeggen dat componenten worden weergegeven volgens de weergave van het besturingssysteem. AWT is zwaar, dat wil zeggen dat de componenten ervan de bronnen van het onderliggende besturingssysteem (OS) gebruiken.
De java.awt pakket biedt klassen voor AWT API zoals TextField , Label , TextArea , RadioButton, CheckBox , Choice , List etc.
De AWT-tutorial helpt de gebruiker om Java GUI-programmering in eenvoudige en gemakkelijke stappen te begrijpen.
Waarom is AWT platformonafhankelijk?
Java AWT roept het native platform aan, roept de subroutine van het native platform (besturingssystemen) aan voor het maken van API-componenten zoals TextField, ChechBox, button, enz.
Een AWT GUI met componenten zoals TextField, label en knop zal er bijvoorbeeld anders uitzien en aanvoelen voor de verschillende platforms zoals Windows, MAC OS en Unix. De reden hiervoor is dat de platforms een andere kijk hebben op hun eigen componenten en dat AWT rechtstreeks de oorspronkelijke subroutine aanroept die deze componenten maakt.
In eenvoudige bewoordingen zal een AWT-applicatie eruit zien als een Windows-applicatie in Windows OS, terwijl het eruit zal zien als een Mac-applicatie in MAC OS.
Java AWT-hiërarchie
De hiërarchie van Java AWT-klassen wordt hieronder gegeven.
Componenten
Alle elementen zoals de knop, tekstvelden, schuifbalken, enz. worden componenten genoemd. In Java AWT zijn er klassen voor elke component, zoals weergegeven in het bovenstaande diagram. Om elk onderdeel op een bepaalde positie op een scherm te plaatsen, moeten we ze aan een container toevoegen.
Houder
De container is een component in AWT die andere componenten kan bevatten, zoals knoppen, tekstvelden, labels enz. De klassen die de containerklasse uitbreiden, staan bekend als container, zoals Kader, dialoog En Paneel .
panda's die een dataframe creëren
Het is eigenlijk een scherm waarop de componenten op hun specifieke locaties worden geplaatst. Het bevat en bestuurt dus de lay-out van componenten.
Opmerking: een container zelf is een component (zie het bovenstaande diagram), daarom kunnen we een container in de container toevoegen.
Soorten containers:
Er zijn vier soorten containers in Java AWT:
Romeinse cijfers 1 100
- Raam
- Paneel
- Kader
- Dialoog
Raam
Het venster is de container zonder randen en menubalken. U moet een frame, dialoogvenster of een ander venster gebruiken om een venster te maken. We moeten een exemplaar van de Window-klasse maken om deze container te maken.
Paneel
Het paneel is de container die geen titelbalk, rand of menubalk bevat. Het is een algemene container voor het vasthouden van de componenten. Het kan andere componenten bevatten, zoals een knop, een tekstveld enz. Een exemplaar van de klasse Panel maakt een container aan waarin we componenten kunnen toevoegen.
Kader
Het Frame is de container die de titelbalk en rand bevat en menubalken kan hebben. Het kan andere componenten bevatten, zoals een knop, tekstveld, schuifbalk enz. Frame is de meest gebruikte container bij het ontwikkelen van een AWT-applicatie.
Handige methoden voor componentklasse
Methode | Beschrijving |
---|---|
openbare leegte toevoegen (Component c) | Voegt een component in op deze component. |
public void setSize(int breedte,int hoogte) | Stelt de grootte (breedte en hoogte) van het onderdeel in. |
public void setLayout(LayoutManager m) | Definieert de layoutmanager voor de component. |
public void setVisible(booleaanse status) | Verandert de zichtbaarheid van de component, standaard false. |
Java AWT-voorbeeld
Om een eenvoudig AWT-voorbeeld te maken, hebt u een frame nodig. Er zijn twee manieren om een GUI te maken met Frame in AWT.
- Door de Frame-klasse uit te breiden ( erfenis )
- Door het object van de Frame-klasse ( vereniging )
AWT-voorbeeld door erfenis
Laten we een eenvoudig voorbeeld van AWT bekijken waarbij we de Frame-klasse erven. Hier tonen we de knopcomponent op het frame.
AWExample1.java
// importing Java AWT class import java.awt.*; // extending Frame class to our class AWTExample1 public class AWTExample1 extends Frame { // initializing using constructor AWTExample1() { // creating a button Button b = new Button('Click Me!!'); // setting button position on screen b.setBounds(30,100,80,30); // adding button into frame add(b); // frame size 300 width and 300 height setSize(300,300); // setting the title of Frame setTitle('This is our basic AWT example'); // no layout manager setLayout(null); // now frame will be visible, by default it is not visible setVisible(true); } // main method public static void main(String args[]) { // creating instance of Frame class AWTExample1 f = new AWTExample1(); } }download dit voorbeeld
In het bovenstaande voorbeeld wordt de methode setBounds(int x-axis, int y-axis, int width, int height) gebruikt om de positie van de awt-knop in te stellen.
Uitgang:
AWT-voorbeeld per vereniging
Laten we een eenvoudig voorbeeld van AWT bekijken waarbij we een exemplaar van de Frame-klasse maken. Hier maken we een TextField-, Label- en Button-component op het Frame.
AWExample2.java
// importing Java AWT class import java.awt.*; // class AWTExample2 directly creates instance of Frame class class AWTExample2 { // initializing using constructor AWTExample2() { // creating a Frame Frame f = new Frame(); // creating a Label Label l = new Label('Employee id:'); // creating a Button Button b = new Button('Submit'); // creating a TextField TextField t = new TextField(); // setting position of above components in the frame l.setBounds(20, 80, 80, 30); t.setBounds(20, 100, 80, 30); b.setBounds(100, 100, 80, 30); // adding components into frame f.add(b); f.add(l); f.add(t); // frame size 300 width and 300 height f.setSize(400,300); // setting the title of frame f.setTitle('Employee info'); // no layout f.setLayout(null); // setting visibility of frame f.setVisible(true); } // main method public static void main(String args[]) { // creating instance of Frame class AWTExample2 awt_obj = new AWTExample2(); } }download dit voorbeeld
Uitgang: