AWT:
Abstract Window Toolkit
Introduction
Création d'une barre de menu
Dessiner en Java |
Page précédente |
Nous allons maintenant commencer l'étude de l'un des packages les plus apprécié de Java : le package java.awt. Celui-ci vous propose un certain nombre de fonctionnalités qui vont vous permettre de créer très simplement des interfaces graphiques. Nous verrons aussi dans ce chapitre, les mécanismes mis à notre disposition pour gérer les événements tel un clic souris par exemple.
Les diverses natures d'objets graphiques
Nous avons à notre disposition principalement trois types d'objets : les Components qui sont des composants graphiques, les Containers qui contiennent les Components (attention un Container est aussi un Component) et les Layouts qui sont en fait des stratégies de placement de Components pour les Containers.
Plus précisément, la classe Container dérive de la classe Component. Par contre, tous les layouts (les stratégies de placement) dérivent de la classe Object.
Les conteneurs
Donc, tous les conteneurs dérivent de la classe Container. Nous y trouvons notamment les classes Panel, Frame et Applet. Un Panel est un conteneur que l'on peut placer dans un autre conteneur. Une Frame est une fenêtre à part entière. Nous reviendrons sur la classe Applet dans le chapitre suivant.
On trouve notamment les méthodes add et remove qui permettent d'ajouter et de supprimer des composants d'un conteneur.
L'exemple suivant créer une Frame dans laquelle on place un bouton.
import java.awt.*;
public class Essai {
public static void main(String argv[]) {
Frame f = new Frame("Fenetre");
Button b = new Button("Push me");
f.add(b); // On place le bouton dans la frame
f.pack(); // On ajouste la frame
f.show(); // Et on l'affiche
}
} |
Les frames
Un objet de classe Frame permet donc de créer une fenêtre. Toutes applications graphiques commence donc par créer une Frame.
On dispose notamment des méthodes show (pour afficher la fenêtre), hide (pour l'effacer), setTitle (pour fixer son titre), setMenuBar (pour y fixer une barre de menu), setSize (pour changer sa taille), setLayout (pour fixer une stratégie de placement des composants), pack (pour la réduire à sa taille minimale), ...
Les boîtes de dialogue
Une boîte de dialogue est un conteneur qui s'affiche dans une fenêtre. Cette fenêtre est forcément dépendante d'une fenêtre parente (un frame). Voici un petit exemple.
import java.awt.*;
public class Essai {
public static void createDialog(Frame f) {
Dialog d = new Dialog(f,"boite de dialog",true);
d.setLayout(new BorderLayout());
d.add(new Label("Voulez vous sortir"),"North");
d.add(new Button("Yes"),"West");
d.add(new Button("No"),"East");
d.pack(); d.show();
}
public static void main(String argv[]) {
Frame f = new Frame("Fenetre");
Button b = new Button("Push me");
f.add(b); // On place le bouton dans la frame
f.pack(); // On ajouste la frame
createDialog(f);
f.show(); // Et on l'affiche
}
} |
Les composants
Si l'on excepte les conteneurs, il nous reste alors des composants tels des boutons (la classe Button), des labels (la classe Label), des zones de saisies de texte (les classes TextField et TextArea), les zones de dessins (la classe Canvas) et quelques autres (les menus par exemples) ... L'exemple précédent montrant comment créer un bouton.
Les boutons
Nous avons donc vu qu'il été possible de créer des boutons. Nous ne reviendrons pas plus en détail sur cet objet graphique simple. Nous verrons, par contre, un peu plus tard comment associer une action avec un click souris sur un tel objet.
Les cases à cocher
Grâce à de tels objets, on peut fournir des batterie de bouton à cocher au sein d'une interface. Voici un petit exemple.
import java.awt.*;
public class Essai {
public static void main(String argv[]) {
Frame f = new Frame("Fenetre");
f.setLayout(new FlowLayout());
CheckboxGroup cbg = new CheckboxGroup();
Checkbox cb1 = new Checkbox("Check Box 1",cbg,false);
Checkbox cb2 = new Checkbox("Check Box 2",cbg,false);
cb1.setState(true);
f.add(cb1); f.add(cb2); f.pack();
f.show(); // Et on l'affiche
}
} |
Les boîtes de sélection
Ces objets sont très utiles pour créer des boites de sélection. Voici un petit exemple.
import java.awt.*;
public class Essai {
public static void main(String argv[]) {
Frame f = new Frame("Fenetre");
f.setLayout(new FlowLayout());
Choice ch = new Choice();
ch.addItem("Plat du jour");
ch.addItem("Daube de sanglier");
ch.addItem("Salade du chef");
f.add(ch); f.pack();
f.show(); // Et on l'affiche
}
} |
|