what is java awt
Ce didacticiel Java AWT explique ce qu'est la boîte à outils de fenêtre abstraite en Java et les concepts associés tels que AWT Color, Point, Graphics, AWT vs Swing, etc.:
Nous avons découvert les termes de base de l'interface graphique dans l'un de nos précédents didacticiels. Dans ce didacticiel, nous aborderons l'un des plus anciens frameworks d'interface graphique Java appelé «AWT Framework». AWT est la forme abrégée de «Abstract Window Toolkit».
AWT est une API pour créer des applications GUI en Java. Il s'agit d'un cadre dépendant de la plate-forme, c'est-à-dire que les composants de l'interface graphique appartenant à AWT ne sont pas les mêmes sur toutes les plates-formes. En fonction de l'aspect et de la convivialité natifs de la plate-forme, l'aspect et la convivialité des composants AWT changent également.
=> Consultez TOUS les didacticiels Java ici.
Ce que vous apprendrez:
JAVA AWT (boîte à outils de fenêtre abstraite)
Java AWT crée des composants en appelant les sous-programmes des plates-formes natives. Par conséquent, une application AWT GUI aura l'apparence et la convivialité du système d'exploitation Windows tout en s'exécutant sur Windows et Mac OS lorsqu'elle s'exécutera sur Mac et ainsi de suite. Ceci explique la dépendance de plate-forme des applications Abstract Window Toolkit.
En raison de sa dépendance à la plate-forme et de la nature lourde de ses composants, il est rarement utilisé dans les applications Java de nos jours. En outre, il existe également des cadres plus récents comme Swing, légers et indépendants de la plate-forme.
Swing a des composants plus flexibles et plus puissants que AWT. Swing fournit des composants similaires à Abstract Window Toolkit et dispose également de composants plus avancés tels que des arbres, des panneaux à onglets, etc.
Mais une chose à noter ici est que le Framework Java Swing est basé sur l'AWT. En d'autres termes, Swing est une API améliorée et elle étend le framework Abstract Window Toolkit. Avant de vous lancer dans les didacticiels Swing, voyons donc un aperçu de ce framework.
Hiérarchie et composants AWT
Voyons maintenant à quoi ressemble la hiérarchie de la boîte à outils de la fenêtre abstraite en Java.
Vous trouverez ci-dessous le diagramme de la hiérarchie AWT en Java.
Comme le montre la figure ci-dessus, le composant AWT racine «Component» s'étend de la classe «Object». La classe de composant est le parent des autres composants, y compris Label, Button, List, Checkbox, Choice, Container, etc.
Un conteneur est en outre divisé en panneaux et fenêtres. Une classe Applet dérive de Panel tandis que Frame et Dialog dérivent du composant Window.
Voyons maintenant brièvement ces composants.
Classe de composant
La classe Component est la racine de la hiérarchie. Un composant est une classe abstraite et est responsable des couleurs d'arrière-plan et de premier plan actuelles ainsi que de la police de texte actuelle.
La classe de composant encapsule les propriétés et les attributs du composant visuel.
Récipient
Les composants Container AWT peuvent contenir d'autres composants tels que du texte, des étiquettes, des boutons, des tableaux, des listes, etc. Le conteneur garde un onglet sur les autres composants qui sont ajoutés à l'interface graphique.
Panneau
Le panneau est une sous-classe de la classe Container. Un panneau est une classe concrète et ne contient pas le titre, la bordure ou la barre de menus. C'est un conteneur pour contenir les autres composants. Il peut y avoir plus d'un panneau dans un cadre.
Classe de fenêtre
La classe Windows est une fenêtre au niveau supérieur et nous pouvons utiliser des cadres ou des boîtes de dialogue pour créer une fenêtre. Une fenêtre n'a pas de bordures ni de barres de menus.
Cadre
Frame dérive de la classe Window et peut être redimensionné. Un cadre peut contenir divers composants comme un bouton, des étiquettes, des champs, une barre de titre, etc. Le cadre est utilisé dans la plupart des applications de la boîte à outils de la fenêtre abstraite.
où est ma clé de sécurité réseau
Un cadre peut être créé de deux manières:
# 1) En utilisant l'objet de classe Frame
Ici, nous créons un objet de classe Frame en instanciant la classe Frame.
Un exemple de programmation est donné ci-dessous.
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 (); } }
Production:
# 2) En étendant la classe Frame
Ici, nous créons une classe qui étend la classe Frame, puis créons des composants du cadre dans son constructeur.
Ceci est montré dans le programme ci-dessous.
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 (); } }
Production:
Classe de couleur AWT
La sortie AWT que nous avons montrée ci-dessus avait des couleurs par défaut pour l'arrière-plan et le premier plan. Abstract Window Toolkit fournit une classe Color qui est utilisée pour créer et définir la couleur des composants. Nous pouvons également définir les couleurs des composants à l'aide d'un framework via les propriétés des composants.
La classe Color nous permet de faire la même chose par programmation. Pour cela, la classe Color utilise le modèle de modèle de couleur RGBA (RGBA = RED, GREEN, BLUE, ALPHA) ou HSB (HSB = HUE, SATURATION, BRIComponents).
Nous n'entrerons pas dans les détails de cette classe, car elle sort du cadre de ce tutoriel.
Le tableau suivant répertorie les différentes méthodes fournies par la classe Color.
Constructeur / Méthodes | Description |
---|---|
getBlue () | Renvoie un composant de couleur bleue dans la plage 0-255. |
plus lumineux () | Créez une version plus lumineuse de la couleur actuelle. |
createContext (ColorModel cm, Rectangle r, Rectangle2D r2d, AffineTransform x, RenderingHints h) | Renvoie un nouveau PaintContext. |
plus sombre() | Crée une version plus foncée de la couleur actuelle. |
décoder (chaîne nm) | Renvoie une couleur opaque spécifiée en convertissant la chaîne en entier. |
equals (Object obj) | Vérifie si l'objet couleur donné est égal à l'objet actuel. |
getAlpha () | Renvoie la valeur alpha de la couleur comprise entre 0 et 255. |
getColor (chaîne nm) | Renvoie une couleur à partir des propriétés système. |
getColor (chaîne nm, couleur v) | |
getColor (chaîne nm, int v) | |
getColorComponents (cspace ColorSpace, float () compArray) | Renvoie un tableau de type float contenant les composants de couleur du ColorSpace spécifié. |
getColorComponents (float () compArray) | Renvoie un tableau de type float contenant les composants de couleur du ColorSpace du Color. |
getColorSpace () | renvoie le ColorSpace de la couleur actuelle. |
getGreen () | Renvoie le composant de couleur verte dans la plage 0-255 dans l'espace sRGB par défaut. |
getRed () | Renvoie le composant de couleur rouge dans la plage 0-255 dans l'espace sRGB par défaut. |
getRGB () | Renvoie la valeur RVB de la couleur actuelle dans le ColorModel sRGB par défaut. |
getHSBColor (float h, float s, float b) | Crée un objet Color à l'aide du modèle de couleur TSL avec des valeurs spécifiées. |
getTransparency () | renvoie la valeur de transparence pour cette couleur. |
hashCode () | Renvoie le code de hachage pour cette couleur. |
HSBtoRGB (flotteur h, flotteur s, flotteur b) | Convertir le TSL donné en une valeur RVB |
RGBtoHSB (int r, int g, int b, float () hsbvals) | convertit les valeurs RVB données en valeurs TSL. |
Point AWT en Java
La classe Point est utilisée pour indiquer un emplacement. L'emplacement provient d'un système de coordonnées bidimensionnel.
quelle est la clé de sécurité réseau sur le routeur
Méthodes | Description |
---|---|
toString () | Renvoie la représentation sous forme de chaîne du point. |
equals (objet) | Vérifiez si deux points sont égaux. |
getLocation () | Retourne l'emplacement du point actuel. |
hashCode () | Renvoie le hashcode du point actuel. |
déplacer (int, int) | Déplace le point donné vers l'emplacement donné dans le système de coordonnées (x, y). |
setLocation (int, int) | Remplace l'emplacement du point par l'emplacement spécifié. |
setLocation (Point) | Définit l'emplacement du point sur l'emplacement donné. |
traduire (int, int) | Convertit le point actuel en point à x + dx, y + dy. |
Classe graphique AWT
Tous les contextes graphiques dans Abstract Window Toolkit pour dessiner des composants dans une application dérivent de la classe Graphics. Un objet de classe Graphics contient les informations d'état nécessaires aux opérations de rendu.
Les informations d'état contiennent généralement:
- Quel composant doit être dessiné?
- Rendu et découpage des coordonnées.
- La couleur, la police et le clip actuels.
- L'opération en cours sur le pixel logique.
- La couleur XOR actuelle
La déclaration générale de la classe Graphics est la suivante:
public abstract class Graphics extends Object
Mode sans tête AWT et Headlessexception
Lorsque nous avons besoin de travailler avec une application graphique, mais sans clavier, souris ou même écran, alors cela s'appelle un environnement «sans tête».
La JVM doit être consciente d'un tel environnement sans tête. Nous pouvons également définir l'environnement sans tête à l'aide de Abstract Window Toolkit.
Il existe certaines façons de procéder comme indiqué ci-dessous:
#1) Définissez la propriété système «java.awt.headless» sur true à l'aide du code de programmation.
#deux) Utilisez la ligne de commande pour définir la propriété de mode sans tête suivante sur true:
java -Djava.awt.headless = true
# 3) Ajoutez «-Djava.awt.headless = true» à la variable d'environnement nommée «JAVA_OPTS» à l'aide d'un script de démarrage de serveur.
Lorsque l'environnement est sans tête et que nous avons un code qui dépend de l'affichage, du clavier ou de la souris, et lorsque ce code est exécuté dans un environnement sans tête, l'exception «HeadlessException» est levée.
La déclaration générale de HeadlessException est donnée ci-dessous:
public class HeadlessException extends UnsupportedOperationException
Nous optons pour le mode sans tête dans les applications qui nécessitent par exemple une connexion d'image basée sur une image. Par exemple, si nous voulons changer l'image à chaque connexion ou à chaque fois que la page est actualisée, alors dans de tels cas, nous chargerons l'image et nous n'avons pas besoin d'un clavier, d'une souris, etc.
Java AWT Vs Swing
Examinons maintenant certaines des différences entre Java AWT et Swing.
AWT | Balançoire |
---|---|
AWT fonctionne avec 21 homologues ou widgets du système d'exploitation qui correspondent à chaque composant. | Swing fonctionne avec un seul pair qui est Window Object. Tous les autres composants sont dessinés par Swing à l'intérieur de l'objet Window. |
AWT signifie «Abstract Windows Toolkit». | Swing est dérivé de Java Foundation Classes (JFC). |
Les composants AWT sont lourds car AWT effectue directement des appels de sous-programmes aux sous-programmes du système d'exploitation. | Les composants Swing sont écrits sur AWT et en tant que tels, les composants sont légers. |
Les composants AWT font partie du package java.awt. | Les composants Swing font partie du package javax.swing. |
AWT dépend de la plate-forme. | Les composants Swing sont écrits en Java et sont indépendants de la plate-forme. |
AWT n'a pas son apparence et sa convivialité. Il adapte l'aspect et la convivialité de la plate-forme sur laquelle il fonctionne. | Swing offre une apparence et une sensation différentes. |
AWT n'a que des fonctionnalités de base et ne prend pas en charge les fonctionnalités avancées telles que le tableau, le panneau à onglets, etc. | Swing fournit des fonctionnalités avancées telles que le panneau JTabbed, JTable, etc. |
AWT est aussi bon qu'une fine couche de classes reposant sur le système d'exploitation, ce qui le rend dépendant de la plate-forme. | Swing est plus grand et contient également de riches fonctionnalités. |
AWT nous fait écrire beaucoup de choses. | Swing a la plupart des fonctionnalités intégrées. |
Questions fréquemment posées
Q # 1) Qu'est-ce que AWT en Java?
Répondre: AWT en Java également connu sous le nom de «Boîte à outils de fenêtre abstraite», qui est un cadre d'interface utilisateur graphique dépendant de la plate-forme qui précède le cadre Swing. Il fait partie de l'API GUI standard Java, des classes Java Foundation ou JFC.
Q # 2) Java AWT est-il toujours utilisé?
Répondre: Il est presque obsolète en Java, à l'exception de quelques composants encore utilisés. En outre, il existe encore d'anciennes applications ou programmes exécutés sur des plates-formes plus anciennes qui utilisent AWT.
Q # 3) Qu'est-ce que AWT et Swing en Java?
Répondre: La boîte à outils Abstract Window est une API dépendante de la plate-forme pour développer des applications GUI en Java. A Swing, d'autre part, est une API pour le développement d'interface graphique et est dérivée de Java Foundation Classes (JFC). Les composants AWT sont lourds tandis que les composants Swing sont légers.
Q # 4) Quelle est la trame dans Java AWT?
Répondre: Un cadre peut être défini comme la fenêtre du composant de niveau supérieur qui a un titre et une bordure. Le cadre a «Disposition de bordure» comme disposition par défaut. Les cadres génèrent également des événements Windows tels que Fermer, Ouvrir, Fermer, Activer, Désactiver, etc.
Q # 5) Qu'est-ce que l'importation Java AWT?
Répondre: Import Java AWT (import java.awt. *) Indique que nous avons besoin de la fonctionnalité de l'API AWT dans notre programme afin que nous puissions utiliser ses composants tels que TextFields, Buttons, Labels, List, etc.
Conclusion
Dans ce didacticiel, nous avons présenté la présentation de Abstract Window Toolkit, en tant qu'API dépendante de la plate-forme pour le développement d'interface graphique en Java. Il est presque obsolète en Java et est remplacé par les autres API comme Swings et JavaFX.
Nous ne sommes pas entrés dans les détails de tous les composants de Abstract Window Toolkit car ils sont rarement utilisés maintenant. Par conséquent, nous n'avons discuté que des composants tels que les cadres, la couleur, etc. et le mode sans tête défini à l'aide d'AWT.
Dans le prochain tutoriel, nous commencerons par les tutoriels Java Swing et nous les discuterons en détail car la plupart des applications Java utilisent aujourd'hui Swing pour le développement de l'interface graphique.
=> Regardez la série de formation Java simple ici.
lecture recommandée
- Tutoriel sur l'interface Java et la classe abstraite avec des exemples
- Principes de base de Java: syntaxe Java, classe Java et principaux concepts Java
- Classe Java Integer et Java BigInteger avec exemples
- Types de classes en Java: abstrait, concret, final, statique
- Déploiement Java: création et exécution d'un fichier JAR Java
- Tutoriel de classe de scanner Java avec des exemples
- Constructeurs privés, abstraits, de tableaux et de chaînes en Java
- Objet Java Class Vs - Comment utiliser une classe et un objet en Java