Guide complet des composants AWT en Java : Boutons et listes
Classé dans Informatique
Écrit le en
français avec une taille de 7,51 KB
Introduction aux boutons en Java AWT
Les objets opérateurs boutons permettent de gérer les interactions utilisateur dans une application. Voici un exemple d'implémentation de base :
Bouton;
bouton = new Button ("Button");
Le bouton apparaîtra quand il s'affichera à l'écran. Cet objet servira également d'identification et renverra l'utilisation du bouton lors de la survenue d'un événement.
Gestion des événements de bouton
Les événements d'une touche de fonction peuvent être capturés en surargeant la méthode action() :
action publique booléen (Event evt, Object obj) {
if (evt.target instanceof Button)
System.out.println ((String) obj);
else
System.out.println ("Event No-Button");
}La distinction entre tous les boutons existants se fait en utilisant l'objet destinataire de l'événement et en le comparant avec les objets que nous avons définis dans notre interface :
import java.awt.*;
import java.applet.Applet;
public class Bouton extends Applet {
Button b1, b2, b3;
public void init() {
b1 = new Button ("B1 Button");
b2 = new Button ("B2 Button");
b3 = new Button ("Bouton B3");
this.add(b1);
this.add(b2);
this.add(b3);
}
public boolean action(Event evt, Object obj) {
if (evt.target.equals(b1))
System.out.println ("On a appuyé sur la touche B1");
if (evt.target.equals(b2))
System.out.println ("Le bouton enfoncé B2");
if (evt.target.equals(b3))
System.out.println ("Bouton enfoncé B3");
return true;
}
}Liste de sélection et choix
Les éléments de sélection en liste (Choice) permettent un accès rapide aux éléments. Par exemple, on pourrait implémenter et maintenir une sélection de couleurs dans un bouton de choix :
import java.awt.*;
import java.applet.Applet;
public class BotonSeleccion extends Applet {
Choice selecteur;
public void init() {
selecteur = new Choice();
selecteur.addItem ("Rouge");
selecteur.addItem ("Vert");
selecteur.addItem ("Bleu");
add(selecteur);
}
public boolean action(Event evt, Object obj) {
if (evt.target instanceof Choice) {
String couleur = (String) obj;
System.out.println ("La couleur sélectionnée est : " + couleur);
}
return true;
}
}La méthode addItem() renvoie dans l'événement du composant Choice l'objet sélectionné.
Numérotation et cases à cocher (Checkbox)
Les cases à cocher (Checkbox) sont utilisées fréquemment comme boutons d'état. Les informations de type booléen fournissent un état vrai ou faux.
import java.awt.*;
import java.applet.Applet;
public class BotonComprobacion extends Applet {
Checkbox remplissage;
public void init() {
remplissage = new Checkbox ("Ryno");
add(remplissage);
}
public boolean action(Event evt, Object obj) {
if (evt.target instanceof Checkbox)
System.out.println ("CheckBox:" + evt.arg.toString());
return true;
}
}Groupes de boutons de sélection (Radio Buttons)
Les cases à cocher peuvent être groupées dans l'interface sous forme de boutons radio (CheckboxGroup), garantissant qu'un seul bouton est actif à la fois.
import java.awt.*;
import java.applet.Applet;
public class BotonRadio extends Applet {
CheckboxGroup radio;
public void init() {
radio = new CheckboxGroup();
add(new Checkbox ("Première", radio, true));
add(new Checkbox ("Second", radio, false));
add(new Checkbox ("Troisième", radio, false));
}
}Boutons autonomes
Dans ce type de classe de bouton, la construction et la gestion des événements se font à l'intérieur du bouton étendu. Ces boutons peuvent être ajoutés à l'application sans se soucier des événements générés.
import java.awt.*;
import java.applet.Applet;
class BotonAceptar extends Button {
public BotonAceptar() {
setLabel ("OK");
}
public boolean action(Event evt, Object obj) {
System.out.println ("Touche OK");
return true;
}
}
public class BotonAuto extends Applet {
BotonAceptar bouton;
public void init() {
bouton = new BotonAceptar();
add(bouton);
}
}Étiquettes (Labels)
Les étiquettes (Label) fournissent un moyen de placer du texte statique dans un panneau, affichant des informations qui restent normalement inchangées pour l'utilisateur.
import java.awt.*;
import java.applet.Applet;
public class LabelApp extends Applet {
public void init() {
Label etiq1 = new Label ("Bonjour Java");
Label etiq2 = new Label ("Un autre texte");
setLayout(new FlowLayout(FlowLayout.CENTER, 10, 10));
add(etiq1);
add(etiq2);
}
}Listes d'éléments
Les listes (List) apparaissent dans les interfaces utilisateur pour faciliter la manipulation de nombreux éléments. Elles sont similaires aux choix mais affichent plusieurs éléments avec une barre de défilement.
import java.awt.*;
import java.applet.Applet;
public class Liste extends Applet {
public void init() {
List l = new List(4, false);
l.addItem ("Mercure");
l.addItem ("Vénus");
l.addItem ("Terre");
add(l);
}
public boolean action(Event evt, Object obj) {
if (evt.target instanceof List)
System.out.println ("Liste d'entrée : " + obj);
return true;
}
}Champs de texte (TextField)
Les champs de texte (TextField) permettent de créer des espaces vides avec une longueur déterminée ou d'afficher un texte prédéfini.
import java.awt.*;
import java.applet.Applet;
public class CampoTexto extends Applet {
TextField tf1, tf2, f3, f4;
public void init() {
tf1 = new TextField();
tf2 = new TextField(20);
f3 = new TextField ("Bonjour");
f4 = new TextField ("Bonjour", 30);
add(tf1);
add(tf2);
add(f3);
add(f4);
}
public boolean action(Event evt, Object obj) {
if (evt.target instanceof TextField) {
if (evt.target.equals(tf1))
System.out.println ("Champ 1 de texte : " + evt.arg.toString());
}
return true;
}
}Zones de texte (TextArea)
Les objets TextArea sont utilisés pour détenir plus d'une ligne de texte, en mode lecture seule ou modifiable via la méthode setEditable().
import java.awt.*;
import java.applet.Applet;
public class AreaTexto extends Applet {
TextArea t1, t2;
public void init() {
Button btn = new Button ("OK");
t1 = new TextArea();
t2 = new TextArea ("Tutoriel Java", 5, 40);
t2.setEditable(false);
add(t1);
add(t2);
add(btn);
}
public boolean action(Event evt, Object obj) {
if (evt.target instanceof Button) {
if ("OK".equals(obj)) {
String texte = t1.getText();
System.out.println(texte);
}
}
return true;
}
}