Beruflich Dokumente
Kultur Dokumente
DvelopponsenJavaLeslmentsd'interfacesgraphiquesdel'AWT
RecherchedansDEJavecGoogle
Rechercher
Dveloppons
en Java v
2.10
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
importjava.applet.*;
importjava.awt.*;
publicclassAppletButtonextendsApplet{
Buttonb=newButton("Bouton");
publicvoidinit(){
super.init();
add(b);
}
}
Labella=newLabel();
la.setText("uneetiquette");
//ouLabella=newLabel("uneetiquette");
Labella=newLabel("etiquette",Label.RIGHT);
la.setText("nouveautexte");
la.setAlignment(Label.LEFT);
Rle
Button()
Button(String)
http://www.jmdoudoux.fr/java/dej/chapawtcomposants.htm
2/20
8/6/2016
DvelopponsenJavaLeslmentsd'interfacesgraphiquesdel'AWT
Buttonbouton=newButton();
bouton.setLabel("bouton");
//ouButtonbouton=newButton("bouton");
bouton.setLabel("nouveaulibell");
Rle
Panel()
Panel(LayoutManager)
Panelp=newPanel();
p.add(newButton("bouton"));
ChoicemaCombo=newChoice();
maCombo.addItem("element1");
//oumaCombo.add("element2");
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);
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();
1.
2.
Stringc=newString();
c=maCombo.getItem(n);
1.
2.
Strings=newString();
s=maCombo.getSelectedItem();
1.
2.
intn;
n=maCombo.getSelectedIndex();
Rle
String getSelectedText( )
http://www.jmdoudoux.fr/java/dej/chapawtcomposants.htm
4/20
8/6/2016
DvelopponsenJavaLeslmentsd'interfacesgraphiquesdel'AWT
int getSelectionStart( )
int getSelectionEnd( )
String getText( )
boolean isEditable( )
void selectAll( )
void setEditable(boolean b)
void setText(String s )
Rle
TextField()
TextField( int )
TextField( String )
Rle
lecture de la chane saisie
Exemple ( code Java 1.1 ) :
String getText( )
1.
2.
Stringsaisie=newString();
saisie=tf.getText();
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('*');
5/20
8/6/2016
DvelopponsenJavaLeslmentsd'interfacesgraphiquesdel'AWT
Rle
TextArea()
TextArea( String )
Rle
lecture du contenu intgral de la zone de texte
Exemple ( code Java 1.1 ) :
String getText()
1.
2.
Stringcontenu=newString;
contenu=ta.getText();
1.
2.
Stringcontenu=newString;
contenu=ta.getSelectedText();
1.
2.
intn;
n=ta.getRows();
1.
2.
intn;
n=ta.getColumns();
Stringtext=
newString("texteinsr");
intn=10;
ta.insertText(text,n);
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
void appendText(String)
ta.appendTexte(Stringtext);
ta.replaceText(text,10,20);
Rle
List( )
List( int )
Rle
ajouter un lment
Exemple ( code Java 1.1 ) :
void addItem(String)
1.
2.
li.addItem("nouvelelement");
//ajoutenfindeliste
1.
li.addItem("ajoutligne",2);
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
1.
li.delItems(1,3);
1.
li.clear();
1.
2.
li.replaceItem(
"ligneremplacee",1);
int countItems()
1.
2.
intn;
n=li.countItems();
1.
2.
intn;
n=li.getRows();
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);
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();
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]);
boolean isSelected(int)
1.
2.
booleanselection;
selection=li.isSelected(0);
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)
li.makeVisible(10);
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();
}
}
Rle
Checkbox()
Checkbox(String)
Checkbox(String,boolean)
Checkbox(String,CheckboxGroup, boolean)
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);
1.
2.
booleanetat;
etat=cb.getState();
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();
CheckboxGrouprb;
Checkboxcb1=newCheckbox("etiquette1",rb,etat1_boolean);
Checkboxcb2=newCheckbox("etiquette2",rb,etat1_boolean);
Checkboxcb3=newCheckbox("etiquette3",rb,etat1_boolean);
Rle
retourne l'objet Checkbox correspondant la rponse slectionne
Checkbox getCurrent()
void setCurrent(Checkbox)
Rle
Scrollbar( )
Scrollbar(orientation)
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)
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();
1.
2.
intvaleur=
sb.getValue();
dtermine la valeur ajouter ou ter quand l'utilisateur clique sur une flche de dfilement
void setLineIncrement( int )
int setPageIncrement( )
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);
}
}
Rle
renvoie la position actuelle et la taille des composants
Rectangle bounds()
void disable()
void enable()
void enable(boolean)
Color getBackGround()
Font getFont()
Color getForeGround()
Graphics getGraphics()
Container getParent()
void hide()
boolean isEnabled()
boolean isShowing()
boolean isVisible()
void layout()
http://www.jmdoudoux.fr/java/dej/chapawtcomposants.htm
13/20
8/6/2016
DvelopponsenJavaLeslmentsd'interfacesgraphiquesdel'AWT
void paint(Graphics)
dessine le composant
void paintAll(Graphics)
void repaint()
void requestFocus()
demande le focus
modifie la position et la taille (unit : points cran)
void setBackground(Color)
void setFont(Font)
dfinit la police
void setForeground(Color)
void show()
Dimension size()
Rle
Panel
Window
fentre principale sans cadre ni menu. Les objets descendants de cette classe peuvent servir
implmenter des menus
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
Rle
Panel()
Panel(LayoutManager)
Panelp=newPanel();
Buttonb=newButton("bouton");
p.add(b);
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()
Rle
Frame()
Frame(String)
Rle
changer le pointeur de la souris dans la fentre
Exemple : f.setCursor(Frame.CROSSHAIR_CURSOR)
setCursor(int)
int getCursorType()
Image getIconImage()
http://www.jmdoudoux.fr/java/dej/chapawtcomposants.htm
15/20
8/6/2016
DvelopponsenJavaLeslmentsd'interfacesgraphiquesdel'AWT
MenuBar getMenuBar()
String getTitle()
boolean isResizeable()
void remove(MenuComponent)
Supprimer un menu
void setIconImage(Image)
void setMenuBar(MenuBar)
void setResizeable(boolean)
void SetTitle(String)
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();
}
}
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.
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);
}
}
importjava.awt.*;
publicclassMaFrameextendsFrame{
publicMaFrame(){
super();
setTitle("TitredelaFenetre");
setSize(300,150);
MenuFenetremf=new
MenuFenetre();
setMenuBar(mf);
pack();
show();//affichelafenetre
publicstaticvoidmain(String[]args){
newMaFrame();
}
18/20
8/6/2016
DvelopponsenJavaLeslmentsd'interfacesgraphiquesdel'AWT
Mthodes
Rle
void add(Menu)
int countMenus()
void remove(Menu)
Rle
void addSeparator()
int countItems()
Rle
dsactiver l'lment
void disable()
void enable()
String getLabel()
boolean isEnabled()
Rle
boolean getState()
Void setState(boolean)
http://www.jmdoudoux.fr/java/dej/chapawtcomposants.htm
19/20
8/6/2016
DvelopponsenJavaLeslmentsd'interfacesgraphiquesdel'AWT
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, ...
http://www.jmdoudoux.fr/java/dej/chapawtcomposants.htm
20/20