what is java awt
Aquest tutorial de Java AWT explica què és Abstract Window Toolkit a Java i conceptes relacionats com AWT Color, Point, Graphics, AWT vs Swing, etc.:
Ens van introduir els termes bàsics de la GUI en un dels nostres tutorials anteriors. En aquest tutorial, parlarem d'un dels marcs GUI més antics de Java anomenat 'AWT Framework'. AWT és el formulari curt per a 'Resum Window Toolkit'.
AWT és una API per crear aplicacions GUI a Java. És un marc dependent de la plataforma, és a dir, els components de la interfície gràfica d’usuari que pertanyen a AWT no són els mateixos en totes les plataformes. Segons l’aspecte natiu de la plataforma, l’aspecte dels components AWT també canvia.
=> Consulteu TOTS els tutorials de Java aquí.
Què aprendreu:
JAVA AWT (Resum d’eines per a finestres)
Java AWT crea components cridant les subrutines de plataformes natives. Per tant, una aplicació GUT AWT tindrà l’aspecte del sistema operatiu Windows mentre s’executa en Windows i Mac OS, quan s’executa en Mac, etc. Això explica la dependència de la plataforma de les aplicacions Abstract Window Toolkit.
A causa de la seva dependència de la plataforma i una mena de naturalesa pesada dels components, poques vegades s’utilitza en aplicacions Java. A més, també hi ha marcs més nous com Swing, que són lleugers i independents de la plataforma.
Swing té components més flexibles i potents en comparació amb AWT. Swing proporciona components similars a Abstract Window Toolkit i també té components més avançats com arbres, taulers amb pestanyes, etc.
Però una cosa a tenir en compte aquí és que el Framework Java Swing es basa en l’AWT. Dit d’una altra manera, Swing és una API millorada i que amplia el framework Abstract Window Toolkit. Per tant, abans de saltar als tutorials de Swing, obtinguem una visió general d’aquest marc.
Jerarquia i components AWT
Ara anem a veure com es veu la jerarquia del joc de finestres abstractes a Java.
A continuació es mostra el diagrama de la jerarquia AWT a Java.
Com es mostra a la figura anterior, el component AWT d’arrel ‘Component’ s’estén des de la classe ‘Objecte’. La classe de components és el pare dels altres components, inclosos Etiqueta, Botó, Llista, Casella de selecció, Elecció, Contenidor, etc.
Un contenidor es divideix en panells i finestres. Una classe Applet deriva de Panel mentre que Frame i Dialog deriven del component Window.
Ara analitzem breument aquests components.
Classe de components
La classe Component és l’arrel de la jerarquia. Un component és una classe abstracta i és responsable del fons actual i dels colors de primer pla, així com del tipus de lletra de text actual.
La classe de components encapsula les propietats i els atributs dels components visuals.
Contenidor
Els components AWT del contenidor poden contenir altres components com ara text, etiquetes, botons, taules, llistes, etc. El contenidor manté una pestanya d'altres components que s'afegeixen a la interfície gràfica d'usuari.
panell
El panell és una subclasse de la classe Container. Un tauler és una classe concreta i no conté el títol, la vora ni la barra de menú. És un contenidor per contenir els altres components. Hi pot haver més d’un panell en un marc.
Classe de finestra
La classe Windows és una finestra al nivell superior i podem utilitzar marcs o diàlegs per crear una finestra. Una finestra no té barres ni barres de menú.
Marc
El marc deriva de la classe Window i es pot canviar la mida. Un marc pot contenir diversos components, com ara botons, etiquetes, camps, barra de títol, etc. El marc s'utilitza a la majoria de les aplicacions del joc de finestres abstractes.
quan es passa un element individual d'una matriu a un mètode:
Es pot crear un marc de dues maneres:
# 1) Mitjançant l'ús de l'objecte de la classe Frame
Aquí, creem un objecte de classe Frame instanciant la classe Frame.
A continuació es dóna un exemple de programació.
import java.awt.*; class FrameButton{ FrameButton (){ Frame f=new Frame(); Button b=new Button('CLICK_ME'); b.setBounds(30,50,80,30); f.add(b); f.setSize(300,300); f.setLayout(null); f.setVisible(true); } public static void main(String args()){ FrameButton f=new FrameButton (); } }
Sortida:
# 2) Ampliant la classe Frame
Aquí creem una classe que amplia la classe Frame i, a continuació, creem components del frame al seu constructor.
Això es mostra al programa següent.
import java.awt.*; class AWTButton extends Frame{ AWTButton (){ Button b=new Button('AWTButton'); b.setBounds(30,100,80,30);// setting button position add(b);//adding button into frame setSize(300,300);//frame size 300 width and 300 height setLayout(null);//no layout manager setVisible(true);//now frame will be visible, by default not visible } public static void main(String args()){ AWTButton f=new AWTButton (); } }
Sortida:
Classe de color AWT
La sortida AWT que hem mostrat anteriorment tenia colors predeterminats per al fons i el primer pla. Resum Window Toolkit proporciona una classe de color que s'utilitza per crear i configurar el color en components. També podem configurar els colors en components mitjançant un marc mitjançant les propietats dels components.
La classe Color ens permet fer el mateix per programació. Amb aquest propòsit, la classe Color utilitza el model de color RGBA (RGBA = VERMELL, VERD, BLAU, ALPHA) o HSB (HSB = HUE, SATURATION, BRIComponents).
No entrarem en els detalls d'aquesta classe, ja que està fora de l'abast d'aquest tutorial.
La taula següent llista els diversos mètodes proporcionats per la classe Color.
Constructor / Mètodes | Descripció |
---|---|
getBlue () | Retorna el component de color blau de l'interval 0-255. |
més brillant () | Creeu una versió més brillant del color actual. |
createContext (ColorModel cm, Rectangle r, Rectangle2D r2d, AffineTransform x, RenderingHints h) | Retorna un nou PaintContext. |
més fosc () | Crea una versió més fosca del color actual. |
descodificar (String nm) | Retorna un color opac especificat convertint la cadena en un enter. |
igual (object object) | Comprova si l'objecte de color donat és igual a l'objecte actual. |
getAlpha () | Retorna el valor alfa del color que oscil·la entre 0-255. |
getColor (String nm) | Retorna un color de les propietats del sistema. |
getColor (String nm, Color v) | |
getColor (String nm, int v) | |
getColorComponents (ColorSpace cspace, float () compArray) | Retorna una matriu de tipus float que conté els components de color de l'espai de color especificat. |
getColorComponents (float () compArray) | Retorna una matriu de tipus float que conté els components de color des de l'espai de color del color. |
getColorSpace () | retorna l'espai de color del color actual. |
getGreen () | Retorna el component de color verd de l'interval 0-255 a l'espai sRGB per defecte. |
getRed () | Retorna el component de color vermell de l'interval 0-255 a l'espai sRGB per defecte. |
getRGB () | Retorna el valor RGB del color actual al model Color sRGB predeterminat. |
getHSBColor (float h, float s, float b) | Crea un objecte de color mitjançant el model de color HSB amb valors especificats. |
getTransparency () | retorna el valor de transparència d'aquest color. |
hashCode () | Retorna el codi hash d'aquest color. |
HSBtoRGB (float h, float s, float b) | Convertiu el valor HSB donat en un valor RGB |
RGBtoHSB (int r, int g, int b, float () hsbvals) | converteix els valors RGB donats en valors HSB. |
Punt AWT a Java
La classe Point s’utilitza per indicar una ubicació. La ubicació prové d’un sistema de coordenades bidimensionals.
Mètodes | Descripció |
---|---|
toString () | Retorna la representació de cadena del punt. |
igual (objecte) | Comproveu si dos punts són iguals. |
getLocation () | Retorn de la ubicació del punt actual. |
hashCode () | Retorna el codi hash del punt actual. |
moure (int, int) | Moveu el punt donat a la ubicació donada al sistema de coordenades (x, y). |
setLocation (int, int) | Canvia la ubicació del punt a la ubicació especificada. |
setLocation (punt) | Estableix la ubicació del punt a la ubicació indicada. |
traduir (int, int) | Tradueix el punt actual a punt a x + dx, y + dy. |
Classe de gràfics AWT
Tots els contextos gràfics del Resum Window Toolkit per dibuixar components en una aplicació provenen de la classe Gràfics. Un objecte de classe Graphics conté la informació d'estat necessària per representar les operacions.
La informació sobre l'estat normalment conté:
- Quin component s'ha de dibuixar?
- Representacions i retallades de coordenades.
- El color, el tipus de lletra i el clip actuals.
- L'operació actual al píxel lògic.
- El color XOR actual
La declaració general de la classe Graphics és la següent:
public abstract class Graphics extends Object
AWT Mode sense cap i Headlessexception
Quan tenim el requisit de treballar amb l'aplicació basada en gràfics, però sense un teclat, un ratolí o fins i tot una pantalla real, se'n diu entorn 'sense cap'.
JVM hauria de ser conscient d’aquest entorn sense cap. També podem configurar l’entorn sense cap capçalera mitjançant l’eina abstracta Window Toolkit.
Hi ha algunes maneres de fer-ho com es mostra a continuació:
# 1) Establiu la propietat del sistema 'java.awt.headless' a true mitjançant el codi de programació.
# 2) Utilitzeu la línia d'ordres per establir la següent propietat del mode sense cap a true:
java -Djava.awt.headless = cert
# 3) Afegiu '-Djava.awt.headless = true' a la variable d'entorn anomenada 'JAVA_OPTS' mitjançant un script d'inici del servidor.
Quan l’entorn és sense cap i tenim un codi que depèn de la visualització, el teclat o el ratolí, i quan aquest codi s’executa en un entorn sense cap, es planteja l’excepció “HeadlessException”.
A continuació es dóna la declaració general de HeadlessException:
public class HeadlessException extends UnsupportedOperationException
Apostem pel mode sense cap a les aplicacions que requereixen, per exemple, un inici d'imatge basat en imatges. Per exemple, si volem canviar la imatge amb cada inici de sessió o cada vegada que s’actualitza la pàgina, en aquests casos, carregarem la imatge i no necessitarem teclat, ratolí, etc.
Java AWT Vs Swing
Vegem ara algunes de les diferències entre Java AWT i Swing.
AWT | Swing |
---|---|
AWT funciona amb 21 parells o ginys del sistema operatiu que corresponen a cada component. | Swing només funciona amb un parell que és Objecte de finestra. La resta de components es dibuixen mitjançant Swing dins de l'objecte Window. |
AWT significa 'Resum Windows Toolkit'. | Swing es deriva de Java Foundation Classes (JFC). |
Els components AWT són pesats, ja que AWT realitza trucades de subrutina directament a subrutines del sistema operatiu. | Els components basculants s’escriuen a la part superior de l’AWT i, per tant, els components són lleugers. |
Els components AWT formen part del paquet java.awt. | Els components de swing formen part del paquet javax.swing. |
AWT depèn de la plataforma. | Els components swing estan escrits en Java i són independents de la plataforma. |
AWT no té la seva aparença. Adapta l’aspecte de la plataforma sobre la qual s’executa. | Swing proporciona una aparença diferent. |
AWT només té funcions bàsiques i no admet funcions avançades com la taula, el tauler amb pestanyes, etc. | Swing proporciona funcions avançades com el tauler JTabbed, JTable, etc. |
AWT és tan bo com una fina capa de classes asseguda a la part superior del sistema operatiu, cosa que el fa dependent de la plataforma. | Swing és més gran i també conté una gran funcionalitat. |
AWT ens fa escriure moltes coses. | Swing té incorporades la majoria de les funcions. |
Preguntes freqüents
P # 1) Què és AWT a Java?
Resposta: AWT a Java també conegut com a 'Abstract Window Toolkit', que és un marc d'interfície gràfica d'usuari dependent de la plataforma que precedeix el marc Swing. Forma part de l'API estàndard de Java GUI, Java Foundation Classes o JFC.
P # 2) Es continua utilitzant Java AWT?
com utilitzar un fitxer .jar
Resposta: És gairebé obsolet a Java excepte alguns components que encara s’utilitzen. A més, encara hi ha algunes aplicacions o programes antics que s’executen en plataformes antigues que utilitzen AWT.
P # 3) Què és AWT i Swing a Java?
Resposta: Resum Window Toolkit és una API que depèn de la plataforma per desenvolupar aplicacions GUI a Java. A Swing, en canvi, és una API per al desenvolupament de GUI i es deriva de Java Foundation Classes (JFC). Els components AWT són pesats, mentre que els components Swing són lleugers.
Q # 4) Quin és el marc a Java AWT?
Resposta: Un marc es pot definir com la finestra del component de nivell superior que té un títol i una vora. El marc té el disseny predeterminat 'Disseny de vores'. Els marcs també generen esdeveniments de Windows com Tancar, Obrir, Tancar, Activar, Desactivar, etc.
Q # 5) Què és importar Java AWT?
Resposta: La importació de Java AWT (import java.awt. *) Indica que necessitem la funcionalitat de l’API AWT al nostre programa per poder utilitzar els seus components com TextFields, Buttons, Labels, List, etc.
Conclusió
En aquest tutorial, hem discutit la visió general de Abstract Window Toolkit, com una API que depèn de la plataforma per al desenvolupament de GUI a Java. És gairebé obsolet a Java i està sent substituït per altres API com Swings i JavaFX.
No hem aprofundit en els detalls de tots els components del Resum Window Toolkit, ja que poques vegades s’utilitzen ara. Per tant, només vam parlar de components com Frames, Color, etc. i del mode sense cap que s’estableix mitjançant AWT.
Al proper tutorial, començarem amb els tutorials de Java Swing i els parlarem detalladament, ja que la majoria de les aplicacions Java actuals utilitzen Swing per al desenvolupament de la GUI.
=> Mireu aquí les sèries de formació Java senzilles.
Lectura recomanada
- Interfície Java i tutoria de classes abstractes amb exemples
- Conceptes bàsics de Java: sintaxi de Java, Java Class i conceptes bàsics de Java
- Java Integer i Java BigInteger Class amb exemples
- Tipus de classes en Java: resum, concret, final, estàtic
- Desplegament de Java: creació i execució del fitxer JAR de Java
- Tutorial de classe Java Scanner amb exemples
- Constructors privats, abstractes, de matriu i de cadenes a Java
- Objecte Java Class Vs: com s'utilitza la classe i l'objecte a Java