IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Développons en Java

13/07/2003




10. Les éléments d'interface graphique de l'AWT
10.1. Les composants graphiques
10.1.1. Les étiquettes
10.1.2. Les boutons
10.1.3. Les panneaux
10.1.4. Les listes déroulantes (combobox)
10.1.5. La classe TextComponent
10.1.6. Les champs de texte
10.1.7. Les zones de texte multilignes
10.1.8. Les listes
10.1.9. Les cases à cocher
10.1.10. Les boutons radio
10.1.11. Les barres de défilement
10.1.12. La classe Canvas
10.2. La classe Component
10.3. Les conteneurs
10.3.1. Le conteneur Panel
10.3.2. Le conteneur Window
10.3.3. Le conteneur Frame
10.3.4. Le conteneur Dialog
10.4. Les menus
10.4.1. Les méthodes de la classe MenuBar
10.4.2. Les méthodes de la classe Menu
10.4.3. Les méthodes de la classe MenuItem
10.4.4. Les méthodes de la classe CheckboxMenuItem


10. Les éléments d'interface graphique de l'AWT


Les classes du toolkit AWT (Abstract Windows Toolkit) permettent d'écrire des interfaces graphiques indépendantes du système d'exploitation sur lesquelles elles vont fonctionner. Cette librairie utilise le système graphique de la plateforme d'exécution (Windows, MacOS, X-Window) pour afficher les objets graphiques. Le toolkit contient des classes décrivant les composants graphiques, les polices, les couleurs et les images.


Le diagramme ci dessus définit une vue partielle de la hiérarchie des classes (les relations d'héritage) qu'il ne faut pas confondre avec la hiérarchie interne à chaque application qui définit l'imbrication des différents composants graphiques.

Les deux classes principales de AWT sont Component et Container. Chaque type d'objet de l'interface graphique est une classe dérivée de Component. La classe Container, qui hérite de Component est capable de contenir d'autres objets graphiques (tout objet dérivant de Component).

Ce chapitre contient plusieurs sections :

  • Les composants graphiques
  • Les étiquettes Les boutons Les panels Les listes déroulantes (combobox) La classe TextComponent Le champs de texte Les zones de texte multilignes Les listes Les cases à cocher Les boutons radio Les barres de défilement La classe Canvas
  • La classe Component
  • Les conteneurs
  • Le conteneur Panel Le conteneur Window Le conteneur Frame Le conteneur Dialog
  • Les menus


10.1. Les composants graphiques


Pour utiliser un composant, il faut créer un nouvel objet représentant le composant et l'ajouter à un de type conteneur qui existe avec la méthode add().

import java.applet.*; import java.awt.*; public class AppletButton extends Applet { Button b = new Button(" Bouton "); public void init() { super.init(); add(b); } }

10.1.1. Les étiquettes


Il faut utiliser un objet de la classe java.awt.Label

Label la = new Label( ); la.setText("une etiquette"); // ou Label la = new Label("une etiquette");
Il est possible de créer un objet de la classe java.awt.Label en précisant l'alignement du texte

Label la = new Label("etiquette", Label.RIGHT);
Le texte à afficher et l'alignement peuvent être modifiés dynamiquement lors de l'éxecution :

la.setText("nouveau texte"); la.setAlignment(Label.LEFT);

10.1.2. Les boutons


Il faut utiliser un objet de la classe java.awt.Button

Cette classe possède deux constructeurs :

Constructeur Rôle
Button()
Button(String) Permet de préciser le libellé du bouton
Button bouton = new Button(); bouton.setLabel("bouton"); // ou Button bouton = new Button("bouton");
Le libellé du bouton peut être modifié dynamiquement grace à la méthode setLabel() :

bouton.setLabel("nouveau libellé");

10.1.3. Les panneaux


Les panneaux sont des conteneurs qui permettent de rassembler des composants et de les positionner grace à un gestionnaire de présentation. Il faut utiliser un objet de la classe java.awt.Panel.

Par défaut le gestionnaire de présentation d'un panel est de type FlowLayout.

Constructeur Role
Panel() Créer un panneau avec un gestionnaire de présentation de type FlowLayout
Panel(LayoutManager) Créer un panneau avec le gestionnaire précisé en paramètre
Panel p = new Panel();
L'ajout d'un composant au panel se fait grace à la méthode add().

p.add(new Button("bouton");

10.1.4. Les listes déroulantes (combobox)


Il faut utiliser un objet de la classe java.awt.Choice

Cette classe ne possède qu'un seul constructeur qui ne possèdent pas de paramètres.

Choice maCombo = new Choice();
Les méthodes add() et addItem() permettent d'ajouter des éléments à la combo.

maCombo.addItem("element 1"); // ou maCombo.add("element 2");
Plusieurs méthodes permettent la gestion des sélections :

Méthodes Role Deprecated
void select( int ); sélectionner un élément par son indice : le premier élément correspond à l'indice 0.
Une exception IllegalArgumentException est levée si l'indice ne correspond pas à un élément.

maCombo.select(0);
void select( String); sélectionner un élément par son contenu
Aucune exception est levée si la chaine de caractères ne correspond à aucun élément : l'élément sélectionné ne change pas.

maCombo.select("element 1");
int countItems( );
déterminer le nombre d'élément de la liste. La méthode countItems() permet d'obtenir le nombre d'éléments de la combo.

int n; n=maCombo.countItems();

il faut utiliser getItemCount() à la place
int n; n=maCombo.getItemCount();
String getItem( int );
lire le contenu de l'élément d'indice n

String c = new String( ); c = maCombo.getItem(n);
String getSelectedItem();
déterminer le contenu de l'élément sélectionné

String s = new String( ); s = maCombo.getSelectedItem();
int getSelectedIndex( );
déterminer l'index de l'élément selectionné

int n; n=maCombo.getSelectedIndex();

10.1.5. La classe TextComponent


La classe TextComponent est la classe des mères des classes qui permettent l'édition de texte : TextArea et TextField.

Elle définit un certain nombre de méthodes dont ces classes héritent.

Méthodes Role
String getSelectedText( ); Renvoie le texte sélectionné
int getSelectionStart( ); Renvoie la position de début de sélection
int getSelectionEnd( ); Renvoie la position de fin de sélection
String getText( ); Renvoie le texte contenu dans l'objet
boolean isEditable( ); Retourne un booleen indiquant si le texte est modifiable
void select(int start, int end ); Sélection des caractères situés entre start et end
void selectAll( ); Sélection de tout le texte
void setEditable(boolean b); Autoriser ou interdire la modification du texte
void setText(String s ); Définir un nouveau texte

10.1.6. Les champs de texte


Il faut déclarer un objet de la classe java.awt.TextField

Il existe plusieurs constructeurs :

Constructeurs Role
TextField();
TextField( int ); prédetermination du nombre de caractères à saisir
TextField( String ); avec texte par défaut
TextField( String, int ); avec texte par défaut et nombre de caractères à saisir
Cette classe possède quelques méthodes utiles :

Méthodes Role Deprecated
String getText( )
lecture de la chaine saisie

String saisie = new String(); saisie = tf.getText( );
int getColumns( )
lecture du nombre de caractères predéfini

int i; i = tf.getColumns( );
void setEchoCharacter()
pour la saisie d'un mot de passe : remplace chaque caractère saisi par celui fourni en paramètre

tf.setEchoCharacter('*'); TextField tf = new TextField(10);

il faut utiliser la méthode setEchoChar()
tf.setEchoChar('*');

10.1.7. Les zones de texte multilignes


Il faut déclarer un objet de la classe java.awt.TextArea

Il existe plusieurs constructeurs :

Constructeur Role
TextArea()
TextArea( int, int ) avec prédetermination du nombre de lignes et de colonnes
TextArea( String ) avec texte par défaut
TextArea( String, int, int ) avec texte par défaut et taille
Les principales méthodes sont :

Méthodes Role Deprecated
String getText()
lecture du contenu intégral de la zone de texte

String contenu = new String; contenu = ta.getText( );
String getSelectedText( )
lecture de la portion de texte sélectionnée

String contenu = new String; contenu = ta.getSelectedText( );
int getRows()
détermination du nombre de lignes

int n; n = ta.getRows( );
int getColumns( )
détermination du nombre de colonnes

int n; n = ta.getColumns( );
void insertText(String, int)
insertion de la chaine à la position fournie

String text = new String(«texte inséré»); int n =10; ta.insertText(text,n);

Il faut utiliser la méthode insert()
String text = new String(«texte inséré»); int n =10; ta.insert(text,n);
void setEditable(boolean)
Autoriser la modification

ta.setEditable(False); //texte non modifiable
void appendText(String)
Ajouter le texte transmis au texte existant

ta.appendTexte(String text);

Il faut utiliser la méthode append()
void replaceText(String, int, int)
Remplacer par text le texte entre les positions start et end

ta.replaceText(text, 10, 20);

il faut utiliser la méthode replaceRange()

10.1.8. Les listes


Il faut déclarer un objet de la classe java.awt.List.

Il existe plusieurs constructeurs :

Constructeur Role
List( )
List( int ) Permet de préciser le nombre de lignes affichées
List( int, boolean ) Permet de préciser le nombre de lignes affichées et l'indicateur de sélection multiple
Les principales méthodes sont :

Méthodes Role Deprecated
void addItem(String)
ajouter un élément

li.addItem("nouvel element"); // a jout en fin de liste

il faut utiliser la méthode add()
void addItem(String, int)
insérer un élément à un certain emplacement : le premier element est en position 0

li.addItem("ajout ligne",2);

il faut utiliser la méthode add()
void delItem(int)
retirer un élément de la liste

li.delItem(0); // supprime le premier element

il faut utiliser la méthode remove()
void delItems(int, int)
supprimer plusieurs éléments consécutifs entre les deux indices

li.delItems(1, 3);

cette méthode est deprecated
void clear()
effacement complet du contenu de la liste

li.clear( );

il faut utiliser la méthode removeAll()
void replaceItem(String, int)
remplacer un élément

li.replaceItem( "ligne remplacee", 1);
int countItems()
nombre d'élément de la liste

int n; n = li.countItems( );

il faut utiliser la méthode getItemCount()
int getRows()
nombre de ligne de la liste

int n; n = li.getRows( );
String getItem(int)
contenu d'un élément

String text = new String( ); text = li.getItem(1);
void select(int)
sélectionner un élément

li.select(0);
setMultipleSelections(boolean)
déterminer si la sélection multiple est autorisée

li.setMultipleSelections(true);

il faut utiliser la méthode setMultipleMode()
void deselect(int)
désélectionner un élément

li.deselect(0);
int getSelectedIndex( )
déterminer l'élément sélectionné en cas de selection simple : renvoi l'indice ou -1 si aucun element n est selectionne

int i; i = li.getSelectedIndex();
int[] getSelectedIndexes( )
déterminer les éléments sélectionnées en cas de sélection multiple

int i[]=li.getSelectedIndexes();
String getSelectedItem( )
déterminer le contenu en cas de sélection simple : renvoi le texte ou null si pas de selection

String texte = new String( ); texte = li.getSelectedItem( );
String[] getSelectedItems()
déterminer les contenus des éléments sélectionnés en cas de sélection multiple : renvoi les textes sélectionnées ou null si pas de sélection

String texte[ ] = li.getSelectedItems(); for (i = 0 ; i < texte.length(); i++) System.out.println(texte[i]);
boolean isSelected(int)
déterminer si un élément est sélectionné

boolean selection; selection = li.isSelected(0);

il faut utiliser la méthode isIndexSelect()
int getVisibleIndex()
renvoie l'index de l'entrée en haut de la liste

int top = li.getVisibleIndex();
void makeVisible(int)
assure que l'élement précisé sera visible

li.makeVisible(10);
import java.awt.*; class TestList { static public void main (String arg [ ]) { Frame frame = new Frame("Une liste"); List list = new List(5,true); list.add("element 0"); list.add("element 1"); list.add("element 2"); list.add("element 3"); list.add("element 4"); frame.add(List); frame.show(); frame.pack(); } }

10.1.9. Les cases à cocher


Il faut déclarer un objet de la classe java.awt.Checkbox

Il existe plusieurs constructeurs :

Constructeur Role
Checkbox( )
Checkbox( String) avec une étiquette
Checkbox( String,boolean) avec une étiquette et un état
Checkbox(String,CheckboxGroup, boolean) avec une étiquette, dans un groupe de cases à cocher et un état
Les principales méthodes sont :

Méthodes Role
void setLabel(String)
modifier l'étiquette

cb.setLabel( "libelle de la );
void setState( boolean )
fixer l'état

cb.setState( true );
boolean getState( )
consulter l'état de la case

boolean etat; etat = cb.getState( );
String getLabel( )
lire l'étiquette de la case

String commentaire = new String( ); commentaire = cb.getLabel( );

10.1.10. Les boutons radio


Déclarer un objet de la classe java.awt.CheckboxGroup

CheckboxGroup rb; Checkbox cb1 = new Checkbox(« etiquette 1 », rb, etat1_boolean); Checkbox cb2 = new Checkbox(« etiquette 2 », rb, etat1_boolean); Checkbox cb3 = new Checkbox(« etiquette 3 », rb, etat1_boolean);
Les principales méthodes sont :

Méthodes Role Deprecated
Checkbox getCurrent() retourne l'objet Checkbox correspondant à la réponse sélectionnée

il faut utiliser la méthode getSelectedCheckbox()
void setCurrent(Checkbox) Coche le bouton radio passé en paramètre

il faut utiliser la méthode setSelectedCheckbox()

10.1.11. Les barres de défilement


Il faut déclarer un objet de la classe java.awt.Scrollbar

Il existe plusieurs constructeurs :

Constructeur Role
Scrollbar( )
Scrollbar(orientation)
Scrollbar( orientation, valeur_initiale, visible, min, max )
orientation : Scrollbar.VERTICALE ou Scrollbar.HORIZONTAL

valeur_initiale : position du curseur à la création

visible : taille de la partie visible de la zone défilante

min : valeur minimale associée à la barre

max : valeur maximale associée à la barre

Les principales méthodes sont :

Méthodes Role Deprecated
sb.setValues(int,int,int,int )
maj des parametres de la barre

sb.setValues( valeur, visible, minimum, maximum );
void setValue(int)
modifer la valeur courante

sb.setValue(10);
int getMaximum( );
lecture du maximum

int max = sb.getMaximum( );
int getMinimum( );
lecture du minimum

int min = sb.getMinimum( );
int getOrientation( )
lecture de l'orientation

int o = sb.getOrientation( );
int getValue( );
lecture de la valeure courante

int valeur = sb.getValue( );
void setLineIncrement( int ); détermine la valeur à ajouter ou à oter quand l'utilisateur clique sur une flèche de défilement

il faut utiliser la méthode setUnitIncrement()
int setPageIncrement( ); détermine la valeur à ajouter ou à oter quand l'utilisateur clique sur le conteneur

il faut utiliser la méthode setBlockIncrement()

10.1.12. La classe Canvas


C'est un composant sans fonction particulière : il est utile pour créer des composants graphiques personnalisés.

Il est nécessaire d'étendre la classe Canvas pour en redéfinir la méthode Paint().

syntaxe : Cancas can = new Canvas( );

import java.awt.*; public class MonCanvas extends Canvas { public void paint(Graphics g) { g.setColor(Color.black); g.fillRect(10, 10, 100,50); g.setColor(Color.green); g.fillOval(40, 40, 10,10); } } import java.applet.*; import java.awt.*; public class AppletButton extends Applet { MonCanvas mc = new MonCanvas(); public void paint(Graphics g) { super.paint(g); mc.paint(g); } }

10.2. La classe Component


Les contrôles fenêtrés descendent plus ou moins directement de la classe AWT Component.

Cette classe contient de nombreuse méthodes :

Méthodes Role Deprecated
Rectangle bounds() renvoie la position actuelle et la taille des composants

utiliser la méthode getBounds().
void disable() désactive les composants

utiliser la méthode setEnabled(false).
void enable() active les composants

utiliser la méthode setEnabled(true).
void enable(boolean) active ou désactive le composant selon la valeur du paramètre

utiliser la méthode setEnabled(boolean).
Color getBackGround() renvoie la couleur actuelle d'arrière plan
Font getFont() renvoie la fonte utilisée pour afficher les caractères
Color getForeGround() renvoie la couleur de premier plan
Graphics getGraphics() renvoie le contexte graphique
Container getParent() renvoie le conteneur ( composant de niveau supérieure )
void hide() masque l'objet

utiliser la méthode setVisible().
boolean inside(int x, int y) indique si la coordonnée écran absolue se trouve dans l'objet

utiliser la méthode contains().
boolean isEnabled() indique si l'objet est actif
boolean isShowing() indique si l'objet est visible
boolean isVisible() indique si l'objet est visible lorque sont conteneur est visible
boolean isShowing() indique si une partie de l'objet est visible
void layout() repositionne l'objet en fonction du Layout Manager courant

utiliser la méthode doLayout().
Component locate(int x, int y) retourne le composant situé à cet endroit

utiliser la méthode getComponentAt().
Point location() retourne l'origine du composant

utiliser la méthode getLocation().
void move(int x, int y) déplace les composants vers la position spécifiée

utiliser la méthode setLocation().
void paint(Graphics); dessine le composant
void paintAll(Graphics) dessine le composant et ceux qui sont contenus en lui
void repaint() redessine le composant pat appel à la méthode update()
void requestFocus(); demande le focus
void reshape(int x, inty, int w, int h) modifie la position et la taille (unité : points écran)

utiliser la méthode setBounds().
void resize(int w, int h) modifie la taille (unité : points écran)

utiliser la méthode setSize().
void setBackground(Color) définie la couleur d'arrière plan
void setFont(Font) définie la police
void setForeground(Color) définie la couleur de premier plan
void show() affiche le composant

utiliser la méthode setVisible(True).
Dimension size() détermine la taille actuelle

utiliser la méthode getSize().

10.3. Les conteneurs


Les conteneurs sont des objets graphiques qui peuvent contenir d'autres objets graphiques, incluant éventuellement des conteneurs. Ils héritent de la classe Container.

Un composant graphique doit toujours être incorporer dans un conteneur :

Conteneur Role
Panel conteneur sans fenetre propre. Utile pour ordonner les controles
Window fenêtre principale sans cadre ni menu. Les objets descendants de cette classe peuvent servir à implémenter des menus
Dialog (descendant de Window) réaliser des boîtes de dialogue simples
Frame (descendant de Window) classe de fenêtre completement fonctionnelle
Applet (descendant de Panel) pas de menu. Pas de boîte de dialogue sans être incorporée dans une classe Frame.
L'insertion de composant dans un conteneur se fait grace à la méthode add(Component) de la classe Container.

Panel p = new Panel(); Button b1 = new button(« premier »); p.add(b1); Button b2; p.add(b2 = new Button (« Deuxième »); p.add(new Button(«Troisième »);

10.3.1. Le conteneur Panel


C'est essentiellement un objet de rangement pour d'autres composants.

La classe Panel possède deux constructeurs :

Constructeur Role
Panel()
Panel(LayoutManager) Permet de préciser un layout manager
Panel p = new Panel( ); Button b = new Button(« bouton »); p.add( b);

10.3.2. Le conteneur Window


La classe Window contient plusieurs méthodes dont voici les plus utiles :

Méthodes Role
void pack() Calculer la taille et la position de tous les controles de la fenetre. La méthode pack() agit en étroite collaboration avec le layout manager et permet à chaque contrôle de garder, dans un premier temps sa taille optimale. Une fois que tous les contrôles ont leur taille optimale, pack() utilise ces informations pour positionner les contrôles. pack() calcule ensuite la taille de la fenêtre. L'appel à pack() doit se faire à l'intérieur du constructeur de fenêtre après insertion de tous les contrôles.
void show() Afficher la fenetre
void dispose() Liberer les ressources allouée à la fenetre

10.3.3. Le conteneur Frame


Permet de créer des fenêtre d'encadrement. Il hérite de Window qui ne s'occupe que de l'ouverture de la fenêtre. Window ne connait pas les menus ni les bordures qui sont gérés par Frame. Dans une applet, elle n'apparait pas dans le navigateur mais comme un fenêtre indépendante.

Il existe deux constructeurs :

Constructeur Role
Frame() Exemple : Frame f = new Frame( );
Frame(String) Precise le nom de la fenetre Exemple : Frame f = new Frame(« titre »);
Les principales méthodes sont :

Méthodes Role Deprecated
setCursor(int) changer le pointeur de la souris dans la fenetre Exemple : f.setCursor(Frame.CROSSHAIR_CURSOR);

utiliser la méthode setCursor(Cursor).
int getCursorType() déterminer la forme actuelle du curseur

utiliser la méthode getCursor().
Image getIconImage() déterminer l'icone actuelle de la fenetre
MenuBar getMenuBar() déterminer la barre de menus actuelle
String getTitle() déterminer le titre de la fenêtre
boolean isResizeable() déteriner si la taille est modifiable
void remove(MenuComponent) Supprimer un menu
void setIconImage(Image); définir l'icone de la fenêtre
void setMenuBar(MenuBar) Définir la barre de menu
void setResizeable(boolean) définir si la taille peut être modifiée
void SetTitle(String) définir le titre de la fenêtre
import java.applet.*; import java.awt.*; public class AppletFrame extends Applet { Frame f; public void init() { super.init(); // insert code to initialize the applet here f = new Frame("titre"); f.add(new Label("hello ")); f.show(); f.setSize(300, 100); } }

Le message « Warning : Applet window » est impossible à enlever dans la fenetre : cela permet d'éviter la création d'une applet qui demande un mot de passe.

Le gestionnaire de mise en page par défaut d'une Frame est BorderLayout (FlowLayout pour une applet).

import java.awt.*; public class MaFrame extends Frame { public MaFrame() { super(); setTitle(" Titre de la Fenetre "); setSize(300, 150); show(); // affiche la fenetre } public static void main(String[] args) { new MaFrame(); } }

10.3.4. Le conteneur Dialog


La classe Dialog hérite de la classe Window.

Une boîte de dialogue doit dérivée de la Classe Dialog de package java.awt.

Un objet de la classe Dialog doit dépendre d'un objet de la classe Frame.

import java.awt.*; import java.awt.event.*; public class Apropos extends Dialog { public APropos(Frame parent) { super(parent, "A propos ", true); addWindowListener(new AProposListener(this)); setSize(300, 300); setResizable(False); } } class AProposListener extends WindowAdapter { Dialog dialogue; public AProposListener(Dialog dialogue) { this.dialogue = dialog; } public void windowClosing(WindowEvent e) { dialogue.dispose(); } }
L'appel du constructeur Dialog(Frame, String, Boolean) permet de créer une instance avec comme paramètres : la fenetre à laquelle appartient la boîte de dialogue, le titre de la boîte, le caractère modale de la boîte.

La méthode dispose() de la classe Dialog ferme la boîte et libère les ressources associées. Il ne faut pas associer cette action à la méthode windowClosed() car dispose provoque l'appel de windowClosed ce qui entrainerait un appel récursif infinie.


10.4. Les menus


Il faut insérer les menus dans des objets de la classe Frame (fenêtre d'encadrement). Il n'est donc pas possible d'insérer directement des menus dans une applet.

Il faut créer une barre de menu et l'affecter à la fenêtre d'encadrement. Il faut créer ensuite créer les entrées de chaque menu et les rattacher à la barre. Ajouter ensuite les éléments à chacun des menus.

import java.awt.*; public class MaFrame extends Frame { public MaFrame() { super(); setTitle(" Titre de la Fenetre "); setSize(300, 150); MenuBar mb = new MenuBar(); setMenuBar(mb); Menu m = new Menu(" un menu "); mb.add(m); m.add(new MenuItem(" 1er element ")); m.add(new MenuItem(" 2eme element ")); Menu m2 = new Menu(" sous menu "); CheckboxMenuItem cbm1 = new CheckboxMenuItem(" menu item 1.3.1 "); m2.add(cbm1); cbm1.setState(true); CheckboxMenuItem cbm2 = new CheckboxMenuItem(" menu item 1.3.2 "); m2.add(cbm2); m.add(m2); pack(); show(); // affiche la fenetre } public static void main(String[] args) { new MaFrame(); } }

import java.awt.*; public class MenuFenetre extends java.awt.MenuBar { public MenuItem menuQuitter, menuNouveau, menuApropos; public MenuFenetre() { Menu menuFichier = new Menu(" Fichier "); menuNouveau = new MenuItem(" Nouveau "); menuQuitter = new MenuItem(" Quitter "); menuFichier.add(menuNouveau); menuFichier.addSeparator(); menuFichier.add(menuQuitter); Menu menuAide = new Menu(" Aide "); menuApropos = new MenuItem(" A propos "); menuAide.add(menuApropos); add(menuFichier); setHelpMenu(menuAide); } }
La méthode setHelpMenu() confère sous certaines plateformes un comportement particulier à ce menu.

La méthode setMenuBar() de la classe Frame prend en paramètre une instance de la classe MenuBar. Cette instance peut être directement une instance de la classe MenuBar qui aura été modifiée grace aux méthodes add() ou alors une classe dérivée de MenuBar qui est adaptée aux besoins (voir Exemple);

import java.awt.*; public class MaFrame extends Frame { public MaFrame() { super(); setTitle(" Titre de la Fenetre "); setSize(300, 150); MenuFenetre mf = new MenuFenetre(); setMenuBar(mf); pack(); show(); // affiche la fenetre } public static void main(String[] args) { new MaFrame(); } }


10.4.1. Les méthodes de la classe MenuBar


Méthodes Role Deprecated
void add(Menu) ajouter un menu dans la barre
int countMenus() renvoie le nombre de menus

utiliser la méthode getMenuCount().
Menu getMenu(int pos) renvoie le menu à la position spécifiée
void remove(int pos) supprimer le menu à la position spécifiée
void remove(Menu) supprimer le menu de la barre de menu

10.4.2. Les méthodes de la classe Menu


Méthodes Role Deprecated
MenuItem add(MenuItem) void add(String) ajouter une option dans le menu
void addSeparator() ajouter un trait de séparation dans le menu
int countItems() renvoie le nombre d'options du menu

utiliser la méthode getItemCount().
MenuItem getItem(int pos) déterminer l'option du menu à la position spécifiée
void remove(MenuItem mi) supprimer la commande spécifiée
void remove(int pos) supprimer la commande à la position spécifiée

10.4.3. Les méthodes de la classe MenuItem


Méthodes Role Deprecated
void disable() désactiver l'élément

utiliser la méthode setEnabled(false).
void enable() activer l'élément

utiliser la méthode setEnabled(true).
void enable(boolean cond) désactiver ou activer l'élément en fonction du paramètre

utiliser la méthode setEnabled(boolean).
String getLabel() Renvoie le texte de l'élément
boolean isEnabled() renvoie l'état de l'élément (actif / inactif)
void setLabel(String text) définir une nouveau texte pour la commande

10.4.4. Les méthodes de la classe CheckboxMenuItem


Méthodes Role
boolean getState() renvoie l'état d'activation de l'élément
Void setState(boolean) définir l'état d'activation de l'élément


Copyright (C) 1999-2003 Jean Michel DOUDOUX