Vous êtes sur la page 1sur 20

8/6/2016

DvelopponsenJavaLeslmentsd'interfacesgraphiquesdel'AWT

RecherchedansDEJavecGoogle

Rechercher

Dveloppons
en Java v

2.10

Copyright (C) 19992016 Jean-Michel


DOUDOUX.

35. Les lments d'interfaces graphiques de l'AWT

Niveau :

Intermdiaire

Les classes du toolkit AWT (Abstract Windows Toolkit) permettent d'crire des interfaces graphiques indpendantes du systme d'exploitation sur
lesquel elles vont fonctionner. Cette librairie utilise le systme graphique de la plate-forme d'excution (Windows, MacOS, X-Window) pour afficher les
objets graphiques. Le toolkit contient des classes dcrivant les composants graphiques, les polices, les couleurs et les images.

Le diagramme ci-dessus dfinit une vue partielle de la hirarchie des classes (les relations d'hritage) qu'il ne faut pas confondre avec la hirarchie
interne chaque application qui dfinit l'imbrication des diffrents composants graphiques.
Les deux classes principales d'AWT sont Component et Container. Chaque type d'objet de l'interface graphique est une classe drive de Component.
La classe Container, qui hrite de Component est capable de contenir d'autres objets graphiques (tout objet drivant de Component).

http://www.jmdoudoux.fr/java/dej/chapawtcomposants.htm

1/20

8/6/2016

DvelopponsenJavaLeslmentsd'interfacesgraphiquesdel'AWT

Ce chapitre contient plusieurs sections :


Les composants graphiques
La classe Component
Les conteneurs
Les menus
La classe java.awt.Desktop

35.1. Les composants graphiques


Pour utiliser un composant, il faut crer un nouvel objet reprsentant le composant et l'ajouter un conteneur existant grce la mthode add().
Exemple ( code Java 1.1 ) : ajout d'un bouton dans une applet (Applet hrite de Panel)
01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.

importjava.applet.*;
importjava.awt.*;

publicclassAppletButtonextendsApplet{

Buttonb=newButton("Bouton");

publicvoidinit(){
super.init();
add(b);
}
}

35.1.1. Les tiquettes


Il faut utiliser un objet de la classe java.awt.Label
Exemple ( code Java 1.1 ) :
1.
2.
3.

Labella=newLabel();
la.setText("uneetiquette");
//ouLabella=newLabel("uneetiquette");

Il est possible de crer un objet de la classe java.awt.Label en prcisant l'alignement du texte


Exemple ( code Java 1.1 ) :
1.

Labella=newLabel("etiquette",Label.RIGHT);

Le texte afficher et l'alignement peuvent tre modifis dynamiquement lors de l'excution :


Exemple ( code Java 1.1 ) :
1.
2.

la.setText("nouveautexte");
la.setAlignment(Label.LEFT);

35.1.2. Les boutons


Il faut utiliser un objet de la classe java.awt.Button
Cette classe possde deux constructeurs :
Constructeur

Rle

Button()

Button(String)

Permet de prciser le libell du bouton

http://www.jmdoudoux.fr/java/dej/chapawtcomposants.htm

2/20

8/6/2016

DvelopponsenJavaLeslmentsd'interfacesgraphiquesdel'AWT

Exemple ( code Java 1.1 ) :


1.
2.
3.

Buttonbouton=newButton();
bouton.setLabel("bouton");
//ouButtonbouton=newButton("bouton");

Le libell du bouton peut tre modifi dynamiquement grce la mthode setLabel() :


Exemple ( code Java 1.1 ) :
1.

bouton.setLabel("nouveaulibell");

35.1.3. Les panneaux


Les panneaux sont des conteneurs qui permettent de rassembler des composants et de les positionner grce un gestionnaire de prsentation. Il faut
utiliser un objet de la classe java.awt.Panel.
Par dfaut le gestionnaire de prsentation d'un panel est de type FlowLayout.
Constructeur

Rle

Panel()

Crer un panneau avec un gestionnaire de prsentation de type FlowLayout

Panel(LayoutManager)

Crer un panneau avec le gestionnaire prcis en paramtre

Exemple ( code Java 1.1 ) :


1.

Panelp=newPanel();

L'ajout d'un composant au panel se fait grce la mthode add().


Exemple ( code Java 1.1 ) :
1.

p.add(newButton("bouton"));

35.1.4. Les listes droulantes (combobox)


Il faut utiliser un objet de la classe java.awt.Choice
Cette classe ne possde qu'un seul constructeur sans paramtres.
Exemple ( code Java 1.1 ) :
1.

ChoicemaCombo=newChoice();

Les mthodes add() et addItem() permettent d'ajouter des lments la combobox.


Exemple ( code Java 1.1 ) :
1.
2.

maCombo.addItem("element1");
//oumaCombo.add("element2");

Plusieurs mthodes permettent la gestion des slections :


Mthodes

Rle
slectionner un lment par son indice : le premier lment correspond l'indice 0.
Une exception IllegalArgumentException est leve si l'indice ne correspond pas un lment.

http://www.jmdoudoux.fr/java/dej/chapawtcomposants.htm

3/20

8/6/2016
void select( int )

DvelopponsenJavaLeslmentsd'interfacesgraphiquesdel'AWT
Exemple ( code Java 1.1 ) :
1.

maCombo.select(0);

slectionner un lment par son contenu


Aucune exception n'est leve si la chane de caractres ne correspond aucun lment : l'lment slectionn ne change
pas.
void select( String)

Exemple ( code Java 1.1 ) :


1.

maCombo.select("element1");

dterminer le nombre d'lments de la liste. La mthode countItems() permet d'obtenir le nombre d'lments de la
combobox.
Exemple ( code Java 1.1 ) :
1.
2.

intn;
n=maCombo.countItems();

int countItems( )
il faut utiliser getItemCount() la place
Exemple ( code Java 1.1 ) :
1.
2.

intn;
n=maCombo.getItemCount();

lire le contenu de l'lment d'indice n


Exemple ( code Java 1.1 ) :
String getItem( int )

1.
2.

Stringc=newString();
c=maCombo.getItem(n);

dterminer le contenu de l'lment slectionn


Exemple ( code Java 1.1 ) :
String
getSelectedItem()

1.
2.

Strings=newString();
s=maCombo.getSelectedItem();

dterminer l'index de l'lment slectionn


Exemple ( code Java 1.1 ) :
int getSelectedIndex( )

1.
2.

intn;
n=maCombo.getSelectedIndex();

35.1.5. La classe TextComponent


La classe TextComponent est la classe mre des classes qui permettent l'dition de texte : TextArea et TextField.
Elle dfinit un certain nombre de mthodes dont ces classes hritent.
Mthodes

Rle

String getSelectedText( )

Renvoie le texte slectionn

http://www.jmdoudoux.fr/java/dej/chapawtcomposants.htm

4/20

8/6/2016

DvelopponsenJavaLeslmentsd'interfacesgraphiquesdel'AWT

int getSelectionStart( )

Renvoie la position de dbut de slection

int getSelectionEnd( )

Renvoie la position de fin de slection

String getText( )

Renvoie le texte contenu dans l'objet

boolean isEditable( )

Retourne un boolen indiquant si le texte est modifiable

void select(int start, int end )

Slection des caractres situs entre start et end

void selectAll( )

Slection de tout le texte

void setEditable(boolean b)

Autoriser ou interdire la modification du texte

void setText(String s )

Dfinir un nouveau texte

35.1.6. Les champs de texte


Il faut dclarer un objet de la classe java.awt.TextField
Il existe plusieurs constructeurs :
Constructeurs

Rle

TextField()

TextField( int )

prdtermination du nombre de caractres saisir

TextField( String )

avec texte par dfaut

TextField( String, int )

avec texte par dfaut et nombre de caractres saisir

Cette classe possde quelques mthodes utiles :


Mthodes

Rle
lecture de la chane saisie
Exemple ( code Java 1.1 ) :

String getText( )

1.
2.

Stringsaisie=newString();
saisie=tf.getText();

lecture du nombre de caractres prdfini


Exemple ( code Java 1.1 ) :
int getColumns( )

1.
2.

inti;
i=tf.getColumns();

pour la saisie d'un mot de passe : remplace chaque caractre saisi par celui fourni en paramtre
Exemple ( code Java 1.1 ) :
1.
2.

tf.setEchoCharacter('*');
TextFieldtf=newTextField(10);

void setEchoCharacter()
il faut utiliser la mthode setEchoChar()
Exemple ( code Java 1.1 ) :
1.

tf.setEchoChar('*');

35.1.7. Les zones de texte multilignes


http://www.jmdoudoux.fr/java/dej/chapawtcomposants.htm

5/20

8/6/2016

DvelopponsenJavaLeslmentsd'interfacesgraphiquesdel'AWT

Il faut dclarer un objet de la classe java.awt.TextArea


Il existe plusieurs constructeurs :
Constructeur

Rle

TextArea()

TextArea( int, int )

avec prdtermination du nombre de lignes et de colonnes

TextArea( String )

avec texte par dfaut

TextArea( String, int, int )

avec texte par dfaut et taille

Les principales mthodes sont :


Mthodes

Rle
lecture du contenu intgral de la zone de texte
Exemple ( code Java 1.1 ) :

String getText()

1.
2.

Stringcontenu=newString;
contenu=ta.getText();

lecture de la portion de texte slectionne


Exemple ( code Java 1.1 ) :
String getSelectedText( )

1.
2.

Stringcontenu=newString;
contenu=ta.getSelectedText();

dtermination du nombre de lignes


Exemple ( code Java 1.1 ) :
int getRows()

1.
2.

intn;
n=ta.getRows();

dtermination du nombre de colonnes


Exemple ( code Java 1.1 ) :
int getColumns( )

1.
2.

intn;
n=ta.getColumns();

insertion de la chane la position fournie


Exemple ( code Java 1.1 ) :
1.
2.
3.
4.

void insertText(String, int)

Stringtext=
newString("texteinsr");
intn=10;
ta.insertText(text,n);

Il faut utiliser la mthode insert()


Exemple ( code Java 1.1 ) :
1.
2.
3.
4.

Stringtext=new
String("texteinsr");
intn=10;
ta.insert(text,n);

Autoriser la modification
Exemple ( code Java 1.1 ) :

http://www.jmdoudoux.fr/java/dej/chapawtcomposants.htm

6/20

8/6/2016

DvelopponsenJavaLeslmentsd'interfacesgraphiquesdel'AWT

void setEditable(boolean)

1.
2.

ta.setEditable(False);
//textenonmodifiable

Ajouter le texte transmis au texte existant


Exemple ( code Java 1.1 ) :
1.

void appendText(String)

ta.appendTexte(Stringtext);

Il faut utiliser la mthode append()


Remplacer par text le texte entre les positions start et end
Exemple ( code Java 1.1 ) :
1.

void replaceText(String, int, int)

ta.replaceText(text,10,20);

il faut utiliser la mthode replaceRange()

35.1.8. Les listes


Il faut dclarer un objet de la classe java.awt.List.
Il existe plusieurs constructeurs :
Constructeur

Rle

List( )

List( int )

Permet de prciser le nombre de lignes affiches

List( int, boolean )

Permet de prciser le nombre de lignes affiches et l'indicateur de slection multiple

Les principales mthodes sont :


Mthodes

Rle
ajouter un lment
Exemple ( code Java 1.1 ) :

void addItem(String)

1.
2.

li.addItem("nouvelelement");
//ajoutenfindeliste

il faut utiliser la mthode add()


insrer un lment un certain emplacement : le premier lment est en position 0
Exemple ( code Java 1.1 ) :
void addItem(String, int)

1.

li.addItem("ajoutligne",2);

il faut utiliser la mthode add()


retirer un lment de la liste
Exemple ( code Java 1.1 ) :

http://www.jmdoudoux.fr/java/dej/chapawtcomposants.htm

7/20

8/6/2016
void delItem(int)

DvelopponsenJavaLeslmentsd'interfacesgraphiquesdel'AWT
1.
2.

li.delItem(0);
//supprimelepremierelement

il faut utiliser la mthode remove()


supprimer plusieurs lments conscutifs entre les deux indices
Exemple ( code Java 1.1 ) :
void delItems(int, int)

1.

li.delItems(1,3);

cette mthode est deprecated


effacement complet du contenu de la liste
Exemple ( code Java 1.1 ) :
void clear()

1.

li.clear();

il faut utiliser la mthode removeAll()


remplacer un lment
Exemple ( code Java 1.1 ) :
void replaceItem(String, int)

1.
2.

li.replaceItem(
"ligneremplacee",1);

nombre d'lments de la liste


Exemple ( code Java 1.1 ) :

int countItems()

1.
2.

intn;
n=li.countItems();

il faut utiliser la mthode getItemCount()


nombre de lignes de la liste
Exemple ( code Java 1.1 ) :
int getRows()

1.
2.

intn;
n=li.getRows();

contenu d'un lment


Exemple ( code Java 1.1 ) :
String getItem(int)

1.
2.

Stringtext=newString();
text=li.getItem(1);

slectionner un lment
Exemple ( code Java 1.1 ) :
void select(int)
1.

li.select(0);

http://www.jmdoudoux.fr/java/dej/chapawtcomposants.htm

8/20

8/6/2016

DvelopponsenJavaLeslmentsd'interfacesgraphiquesdel'AWT
dterminer si la slection multiple est autorise
Exemple ( code Java 1.1 ) :

setMultipleSelections(boolean)

1.

li.setMultipleSelections(true);

il faut utiliser la mthode setMultipleMode()


dslectionner un lment
Exemple ( code Java 1.1 ) :
void deselect(int)
1.

li.deselect(0);

dterminer l'lment slectionn en cas de slection simple : renvoie l'indice ou -1 si aucun lment n'est slectionn
Exemple ( code Java 1.1 ) :
int getSelectedIndex( )

1.
2.

inti;
i=li.getSelectedIndex();

dterminer les lments slectionns en cas de slection multiple


Exemple ( code Java 1.1 ) :
int[] getSelectedIndexes( )
1.

inti[]=li.getSelectedIndexes();

dterminer le contenu en cas de slection simple : renvoie le texte ou null si pas de slection
Exemple ( code Java 1.1 ) :
String getSelectedItem( )

1.
2.

Stringtexte=newString();
texte=li.getSelectedItem();

dterminer les contenus des lments slectionns en cas de slection multiple : renvoie les textes slectionns ou
null si pas de slection
Exemple ( code Java 1.1 ) :
String[] getSelectedItems()

1.
2.
3.
4.

Stringtexte[]=
li.getSelectedItems();
for(i=0;i<texte.length();i++)
System.out.println(texte[i]);

dterminer si un lment est slectionn


Exemple ( code Java 1.1 ) :

boolean isSelected(int)

1.
2.

booleanselection;
selection=li.isSelected(0);

il faut utiliser la mthode isIndexSelect()


renvoie l'index de l'entre en haut de la liste
Exemple ( code Java 1.1 ) :
int getVisibleIndex()
1.

inttop=li.getVisibleIndex();

http://www.jmdoudoux.fr/java/dej/chapawtcomposants.htm

9/20

8/6/2016

DvelopponsenJavaLeslmentsd'interfacesgraphiquesdel'AWT
assure que l'lment prcis sera visible

void makeVisible(int)

Exemple ( code Java 1.1 ) :


1.

li.makeVisible(10);

Exemple ( code Java 1.1 ) :


01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.

importjava.awt.*;

classTestList{

staticpublicvoidmain(Stringarg[]){

Frameframe=newFrame("Uneliste");

Listlist=newList(5,true);
list.add("element0");
list.add("element1");
list.add("element2");
list.add("element3");
list.add("element4");

frame.add(List);
frame.pack();
frame.show();
}
}

35.1.9. Les cases cocher


Il faut dclarer un objet de la classe java.awt.Checkbox
Il existe plusieurs constructeurs :
Constructeur

Rle

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 mthodes sont :


Mthodes

Rle
modifier l'tiquette
Exemple ( code Java 1.1 ) :

void setLabel(String)
1.

cb.setLabel("libelledelacase:");

fixer l'tat
Exemple ( code Java 1.1 ) :
void setState( boolean )
1.

cb.setState(true);

consulter l'tat de la case


Exemple ( code Java 1.1 ) :
boolean getState( )

1.
2.

booleanetat;
etat=cb.getState();

lire l'tiquette de la case

http://www.jmdoudoux.fr/java/dej/chapawtcomposants.htm

10/20

8/6/2016

DvelopponsenJavaLeslmentsd'interfacesgraphiquesdel'AWT
lire l'tiquette de la case
Exemple ( code Java 1.1 ) :

String getLabel( )

1.
2.

Stringcommentaire=newString();
commentaire=cb.getLabel();

35.1.10. Les boutons radio


Dclarer un objet de la classe java.awt.CheckboxGroup
Exemple ( code Java 1.1 ) :
1.
2.
3.
4.

CheckboxGrouprb;
Checkboxcb1=newCheckbox("etiquette1",rb,etat1_boolean);
Checkboxcb2=newCheckbox("etiquette2",rb,etat1_boolean);
Checkboxcb3=newCheckbox("etiquette3",rb,etat1_boolean);

Les principales mthodes sont :


Mthodes

Rle
retourne l'objet Checkbox correspondant la rponse slectionne

Checkbox getCurrent()

il faut utiliser la mthode getSelectedCheckbox()


Coche le bouton radio pass en paramtre

void setCurrent(Checkbox)

il faut utiliser la mthode setSelectedCheckbox()

35.1.11. Les barres de dfilement


Il faut dclarer un objet de la classe java.awt.Scrollbar
Il existe plusieurs constructeurs :
Constructeur

Rle

Scrollbar( )

Scrollbar(orientation)

Scrollbar( orientation, valeur_initiale, visible, min, max )

orientation : Scrollbar.VERTICALE ou Scrollbar.HORIZONTAL


valeur_initiale : position du curseur la cration
visible : taille de la partie visible de la zone dfilante
min : valeur minimale associe la barre
max : valeur maximale associe la barre
Les principales mthodes sont :
Mthodes

Rle
mise jour des paramtres de la barre
Exemple ( code Java 1.1 ) :

sb.setValues(int,int,int,int )

1.
2.
3.

sb.setValues(
valeur,visible,
minimum,maximum);

http://www.jmdoudoux.fr/java/dej/chapawtcomposants.htm

11/20

8/6/2016

DvelopponsenJavaLeslmentsd'interfacesgraphiquesdel'AWT
modifier la valeur courante

void setValue(int)

Exemple ( code Java 1.1 ) :


1.

sb.setValue(10);

lecture du maximum
Exemple ( code Java 1.1 ) :
int getMaximum( )

1.
2.

intmax=
sb.getMaximum();

lecture du minimum
Exemple ( code Java 1.1 ) :
int getMinimum( )

1.
2.

intmin=
sb.getMinimum();

lecture de l'orientation
Exemple ( code Java 1.1 ) :
int getOrientation( )

1.
2.

into=
sb.getOrientation();

lecture de la valeur courante


Exemple ( code Java 1.1 ) :
int getValue( )

1.
2.

intvaleur=
sb.getValue();

dtermine la valeur ajouter ou ter quand l'utilisateur clique sur une flche de dfilement
void setLineIncrement( int )

il faut utiliser la mthode setUnitIncrement()


dtermine la valeur ajouter ou ter quand l'utilisateur clique sur le conteneur

int setPageIncrement( )

il faut utiliser la mthode setBlockIncrement()

35.1.12. La classe Canvas


C'est un composant sans fonction particulire : il est utile pour crer des composants graphiques personnaliss.
Il est ncessaire d'tendre la classe Canvas pour en redfinir la mthode Paint().
syntaxe : Cancas can = new Canvas( )
Exemple ( code Java 1.1 ) :
01.
02.
03.
04.
05.
06.
07.
08.
09.
10.

importjava.awt.*;

publicclassMonCanvasextendsCanvas{

publicvoidpaint(Graphicsg){
g.setColor(Color.black);
g.fillRect(10,10,100,50);
g.setColor(Color.green);
g.fillOval(40,40,10,10);
}

11.

http://www.jmdoudoux.fr/java/dej/chapawtcomposants.htm

12/20

8/6/2016
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.

DvelopponsenJavaLeslmentsd'interfacesgraphiquesdel'AWT

importjava.applet.*;
importjava.awt.*;

publicclassAppletButtonextendsApplet{

MonCanvasmc=newMonCanvas();

publicvoidpaint(Graphicsg){
super.paint(g);
mc.paint(g);
}
}

35.2. La classe Component


Les contrles fentrs descendent plus ou moins directement de la classe AWT Component.
Cette classe contient de nombreuses mthodes :
Mthodes

Rle
renvoie la position actuelle et la taille des composants

Rectangle bounds()

utiliser la mthode getBounds().


dsactive les composants

void disable()

utiliser la mthode setEnabled(false).


active les composants

void enable()

utiliser la mthode setEnabled(true).


active ou dsactive le composant selon la valeur du paramtre

void enable(boolean)

utiliser la mthode setEnabled(boolean).

Color getBackGround()

renvoie la couleur actuelle d'arrire plan

Font getFont()

renvoie la fonte utilise pour afficher les caractres

Color getForeGround()

renvoie la couleur de premier plan

Graphics getGraphics()

renvoie le contexte graphique

Container getParent()

renvoie le conteneur ( composant de niveau suprieur )


masque l'objet

void hide()

utiliser la mthode setVisible().


indique si la coordonne cran absolue se trouve dans l'objet

boolean inside(int x, int y)

utiliser la mthode 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 lorsque sont conteneur est visible


repositionne l'objet en fonction du Layout Manager courant

void layout()

utiliser la mthode doLayout().


retourne le composant situ cet endroit

Component locate(int x, int y)

http://www.jmdoudoux.fr/java/dej/chapawtcomposants.htm

utiliser la mthode getComponentAt().

13/20

8/6/2016

DvelopponsenJavaLeslmentsd'interfacesgraphiquesdel'AWT

retourne l'origine du composant


Point location()

utiliser la mthode getLocation().


dplace les composants vers la position spcifie

void move(int x, int y)

utiliser la mthode 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 par appel la mthode update()

void requestFocus()

demande le focus
modifie la position et la taille (unit : points cran)

void reshape(int x, inty, int w, int h)

utiliser la mthode setBounds().


modifie la taille (unit : points cran)

void resize(int w, int h)

utiliser la mthode setSize().

void setBackground(Color)

dfinit la couleur d'arrire plan

void setFont(Font)

dfinit la police

void setForeground(Color)

dfinit la couleur de premier plan


affiche le composant

void show()

utiliser la mthode setVisible(True).


dtermine la taille actuelle

Dimension size()

utiliser la mthode getSize().

35.3. Les conteneurs


Les conteneurs sont des objets graphiques qui peuvent contenir d'autres objets graphiques, incluant ventuellement des conteneurs. Ils hritent de la
classe Container.
Un composant graphique doit toujours tre incorpor dans un conteneur :
Conteneur

Rle

Panel

conteneur sans fentre propre. Utile pour ordonner les contrles

Window

fentre principale sans cadre ni menu. Les objets descendants de cette classe peuvent servir
implmenter des menus

Dialog (descendant de Window)

raliser des botes de dialogue simples

Frame (descendant de Window)

classe de fentre compltement fonctionnelle

Applet (descendant de Panel)

pas de menu. Pas de bote de dialogue sans tre incorpore dans une classe Frame.

L'insertion de composant dans un conteneur se fait grce la mthode add(Component) de la classe Container.
Exemple ( code Java 1.1 ) :
1.
2.
3.
4.
5.
6.
7.

Panelp=newPanel();

Buttonb1=newbutton("Premier");
p.add(b1);
Buttonb2;
p.add(b2=newButton("Deuxime"));
p.add(newButton("Troisime"));

http://www.jmdoudoux.fr/java/dej/chapawtcomposants.htm

14/20

8/6/2016

DvelopponsenJavaLeslmentsd'interfacesgraphiquesdel'AWT

35.3.1. Le conteneur Panel


C'est essentiellement un objet de rangement pour d'autres composants.
La classe Panel possde deux constructeurs :
Constructeur

Rle

Panel()

Panel(LayoutManager)

Permet de prciser un layout manager

Exemple ( code Java 1.1 ) :


1.
2.
3.
4.

Panelp=newPanel();

Buttonb=newButton("bouton");
p.add(b);

35.3.2. Le conteneur Window


La classe Window contient plusieurs mthodes dont voici les plus utiles :
Mthodes

Rle

void pack()

Calculer la taille et la position de tous les contrles de la fentre. La mthode pack() agit en troite collaboration avec le layout
manager et permet chaque contrle de garder, dans un premier temps sa taille optimale. Une fois que tous les contrles ont leur
taille optimale, pack() utilise ces informations pour positionner les contrles. pack() calcule ensuite la taille de la fentre. L'appel
pack() doit se faire l'intrieur du constructeur de fentre aprs insertion de tous les contrles.

void show()

Afficher la fentre

void dispose()

Librer les ressources alloues la fentre

35.3.3. Le conteneur Frame


Ce conteneur permet de crer des fentres d'encadrement. Il hrite de la classe Window qui ne s'occupe que de l'ouverture de la fentre. Window ne
connait pas les menus ni les bordures qui sont grs par la classe Frame. Dans une applet, elle n'apparait pas dans le navigateur mais comme une fentre
indpendante.
Il existe deux constructeurs :
Constructeur

Rle

Frame()

Exemple : Frame f = new Frame( )

Frame(String)

Prcise le nom de la fentre


Exemple : Frame f = new Frame( titre )

Les principales mthodes sont :


Mthodes

Rle
changer le pointeur de la souris dans la fentre
Exemple : f.setCursor(Frame.CROSSHAIR_CURSOR)

setCursor(int)

utiliser la mthode setCursor(Cursor).


dterminer la forme actuelle du curseur

int getCursorType()

Image getIconImage()

utiliser la mthode getCursor().


dterminer l'icone actuelle de la fentre

http://www.jmdoudoux.fr/java/dej/chapawtcomposants.htm

15/20

8/6/2016

DvelopponsenJavaLeslmentsd'interfacesgraphiquesdel'AWT

MenuBar getMenuBar()

dterminer la barre de menus actuelle

String getTitle()

dterminer le titre de la fentre

boolean isResizeable()

dterminer si la taille est modifiable

void remove(MenuComponent)

Supprimer un menu

void setIconImage(Image)

dfinir l'icone de la fentre

void setMenuBar(MenuBar)

Dfinir la barre de menus

void setResizeable(boolean)

dfinir si la taille peut tre modifie

void SetTitle(String)

dfinir le titre de la fentre

Exemple ( code Java 1.1 ) :


01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.

importjava.applet.*;
importjava.awt.*;

publicclassAppletFrameextendsApplet{

Framef;

publicvoidinit(){
super.init();
//insertcodetoinitializetheapplethere
f=newFrame("titre");
f.add(newLabel("hello"));
f.setSize(300,100);
f.show();
}
}

Le message Warning : Applet window est impossible enlever dans la fentre : cela permet d'viter la cration d'une applet qui demande un mot de
passe.
Le gestionnaire de mise en page par dfaut d'une Frame est BorderLayout (FlowLayout pour une applet).
Exemple ( code Java 1.1 ) : construction d'une fentre simple
01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.

importjava.awt.*;

publicclassMaFrameextendsFrame{

publicMaFrame(){
super();
setTitle("TitredelaFenetre");
setSize(300,150);
show();//affichelafenetre
}

publicstaticvoidmain(String[]args){
newMaFrame();
}
}

35.3.4. Le conteneur Dialog


La classe Dialog hrite de la classe Window.
Une bote de dialogue doit drive de la Classe Dialog de package java.awt.
Un objet de la classe Dialog doit dpendre d'un objet de la classe Frame.
Exemple ( code Java 1.1 ) :
01.
02.

importjava.awt.*;
importjava.awt.event.*;

03.

http://www.jmdoudoux.fr/java/dej/chapawtcomposants.htm

16/20

8/6/2016
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.

DvelopponsenJavaLeslmentsd'interfacesgraphiquesdel'AWT

publicclassAproposextendsDialog{

publicAPropos(Frameparent){
super(parent,"Apropos",true);
addWindowListener(new
AProposListener(this));
setSize(300,300);
setResizable(False);
}
}

classAProposListenerextendsWindowAdapter{

Dialogdialogue;
publicAProposListener(Dialogdialogue){
this.dialogue=dialog;
}

publicvoidwindowClosing(WindowEvente){
dialogue.dispose();
}

L'appel du constructeur Dialog(Frame, String, Boolean) permet de crer une instance avec comme paramtres : la fentre laquelle appartient la bote
de dialogue, le titre de la bote, le caractre modale de la bote.
La mthode dispose() de la classe Dialog ferme la bote et libre les ressources associes. Il ne faut pas associer cette action la mthode
windowClosed() car dispose provoque l'appel de windowClosed ce qui entrainerait un appel rcursif infini.

35.4. Les menus


Il faut insrer les menus dans des objets de la classe Frame (fentre d'encadrement). Il n'est donc pas possible d'insrer directement des menus dans
une applet.
Il faut crer une barre de menus et l'affecter la fentre d'encadrement. Il faut ensuite crer les entres de chaque menu et les rattacher la
barre. Ajouter ensuite les lments chacun des menus.
Exemple ( code Java 1.1 ) :
01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.

importjava.awt.*;

publicclassMaFrameextendsFrame{

publicMaFrame(){
super();
setTitle("TitredelaFenetre");
setSize(300,150);

MenuBarmb=newMenuBar();
setMenuBar(mb);

Menum=newMenu("unmenu");
mb.add(m);
m.add(newMenuItem("1erelement"));
m.add(newMenuItem("2emeelement"));
Menum2=newMenu("sousmenu");

CheckboxMenuItemcbm1=newCheckboxMenuItem("menuitem1.3.1");
m2.add(cbm1);
cbm1.setState(true);
CheckboxMenuItemcbm2=newCheckboxMenuItem("menuitem1.3.2");
m2.add(cbm2);

m.add(m2);

pack();
show();//affichelafenetre

publicstaticvoidmain(String[]args){
newMaFrame();
}

http://www.jmdoudoux.fr/java/dej/chapawtcomposants.htm

17/20

8/6/2016

DvelopponsenJavaLeslmentsd'interfacesgraphiquesdel'AWT

Exemple ( code Java 1.1 ) : cration d'une classe qui dfinit un menu
01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.

importjava.awt.*;

publicclassMenuFenetreextendsjava.awt.MenuBar{

publicMenuItemmenuQuitter,menuNouveau,menuApropos;

publicMenuFenetre(){

MenumenuFichier=newMenu("Fichier");
menuNouveau=newMenuItem("Nouveau");
menuQuitter=newMenuItem("Quitter");

menuFichier.add(menuNouveau);

menuFichier.addSeparator();

menuFichier.add(menuQuitter);

MenumenuAide=newMenu("Aide");
menuApropos=newMenuItem("Apropos");
menuAide.add(menuApropos);

add(menuFichier);

setHelpMenu(menuAide);
}
}

La mthode setHelpMenu() confre sur certaines plate-formes un comportement particulier ce menu.


La mthode setMenuBar() de la classe Frame prend en paramtre une instance de la classe MenuBar. Cette instance peut tre directement une instance
de la classe MenuBar qui aura t modifie grce aux mthodes add() ou alors une classe drive de MenuBar qui est adapte aux besoins.
Exemple ( code Java 1.1 ) :
01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.

importjava.awt.*;

publicclassMaFrameextendsFrame{

publicMaFrame(){
super();
setTitle("TitredelaFenetre");
setSize(300,150);
MenuFenetremf=new
MenuFenetre();

setMenuBar(mf);

pack();

show();//affichelafenetre

publicstaticvoidmain(String[]args){
newMaFrame();
}

35.4.1. Les mthodes de la classe MenuBar


http://www.jmdoudoux.fr/java/dej/chapawtcomposants.htm

18/20

8/6/2016

DvelopponsenJavaLeslmentsd'interfacesgraphiquesdel'AWT

Mthodes

Rle

void add(Menu)

ajouter un menu dans la barre


renvoie le nombre de menus

int countMenus()

utiliser la mthode getMenuCount().

Menu getMenu(int pos)

renvoie le menu la position spcifie

void remove(int pos)

supprimer le menu la position spcifie

void remove(Menu)

supprimer le menu de la barre de menu

35.4.2. Les mthodes de la classe Menu


Mthodes

Rle

MenuItem add(MenuItem) void add(String)

ajouter une option dans le menu

void addSeparator()

ajouter un trait de sparation dans le menu


renvoie le nombre d'options du menu

int countItems()

utiliser la mthode getItemCount().

MenuItem getItem(int pos)

dterminer l'option du menu la position spcifie

void remove(MenuItem mi)

supprimer la commande spcifie

void remove(int pos)

supprimer la commande la position spcifie

35.4.3. Les mthodes de la classe MenuItem


Mthodes

Rle
dsactiver l'lment

void disable()

utiliser la mthode setEnabled(false).


activer l'lment

void enable()

utiliser la mthode setEnabled(true).


dsactiver ou activer l'lment en fonction du paramtre

void enable(boolean cond)

utiliser la mthode setEnabled(boolean).

String getLabel()

Renvoie le texte de l'lment

boolean isEnabled()

renvoie l'tat de l'lment (actif / inactif)

void setLabel(String text)

dfinir un nouveau texte pour la commande

35.4.4. Les mthodes de la classe CheckboxMenuItem


Mthodes

Rle

boolean getState()

renvoie l'tat d'activation de l'lment

Void setState(boolean)

dfinir l'tat d'activation de l'lment

http://www.jmdoudoux.fr/java/dej/chapawtcomposants.htm

19/20

8/6/2016

DvelopponsenJavaLeslmentsd'interfacesgraphiquesdel'AWT

35.5. La classe java.awt.Desktop


Cette classe, ajoute dans Java SE 6, permet de manipuler des documents sous la forme d'un fichier ou d'une URI partir de leur type mime dfini sur
le systme d'exploitation sous-jacent.
La mthode statique isDesktopSupported() permet de savoir si la classe Desktop est supporte par la plate-forme.
La mthode statique Desktop.getDesktop() donne un accs l'instance de la classe Desktop.
Plusieurs constantes sont dfinies dans Desktop.Action pour prciser le type d'opration qu'il est possible de raliser sur un document : BROWSE,
EDIT, MAIL, OPEN et PRINT.
La mthode isSupported() permet de savoir si l'action est supporte sur la plate-forme mais cela ne signifie pas que cette action soit supporte pour
tous les types mimes enregistrs sur la plate-forme.
Plusieurs mthodes permettent d'excuter les actions : browse(), edit(), mail(), open() et print().
Exemple : ouverture du fichier fourni en paramtre
01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.

packagecom.jmdoudoux.test.java6;

importjava.awt.*;
importjava.io.*;

publicclassTestDektop{

publicstaticvoidmain(Stringargs[]){
if(Desktop.isDesktopSupported()){

Desktopdesktop=Desktop.getDesktop();
if(args.length==1){
Filefichier=newFile(args[0]);
if(desktop.isSupported(Desktop.Action.OPEN)){
System.out.println("Ouverturedufichier"+fichier.getName());
try{
desktop.open(fichier);
}catch(IOExceptionioe){
ioe.printStackTrace();
}
}
}
}
}
}

La mthode mail() attend en paramtre une uri qui doit utiliser le protocole mailto:.
La mthode browse() attend en paramtre une uri qui utilise un protocole reconnu par le navigateur http, https, ...

Dveloppons en Java v 2.10


Copyright (C) 1999-2016 Jean-Michel DOUDOUX.

http://www.jmdoudoux.fr/java/dej/chapawtcomposants.htm

20/20