Vous êtes sur la page 1sur 28

ATELIER JAVA

N°2
GL2 1
LE DÉVELOPPEMENT DES
INTERFACES GRAPHIQUES
 Java proposait l'API AWT (Abstract Window Toolkit) pour créer
des interfaces graphiques.
 Une nouvelle API nommée Swing
 API (Application Programming Interface): de packages, de classes
et d'interfaces prédéfinis avec leurs méthodes, champs et
constructeurs respectifs.

2
3
4
5
6
LES COMPOSANTS
GRAPHIQUES
Pour utiliser un composant, il faut créer un nouvel objet représentant le
composant et l'ajouter à un conteneur existant grâce à la méthode add().
1. Les étiquettes: un objet de la classe java.awt.Label
Exemple: Label la = new Label( );
la.setText("une etiquette");
ou Label la = new Label("une etiquette");
ou Label la = new Label("etiquette", Label.RIGHT);
la.setText("nouveau texte");
la.setAlignment(Label.LEFT);
7
LES COMPOSANTS
GRAPHIQUES
2. Les boutons: un objet de la classe java.awt.Button
Exemple: Button bouton = new Button();
bouton.setLabel("bouton");
ou Button bouton = new Button("bouton");
bouton.setLabel("nouveau libellé");
3. Les panneaux: un objet de la classe java.awt.Panel. Des conteneurs qui
permettent de rassembler des composants et de les positionner.
Exemple: Panel p = new Panel();
p.add(new Button("bouton"));
8
LES COMPOSANTS
GRAPHIQUES
4. Les listes déroulantes (combobox): un objet de la classe java.awt. Choice
Exemple: Choice maCombo = new Choice();
add() et addItem() permettent d'ajouter des éléments à la combobox.
maCombo.addItem("element 1");
ou maCombo.add("element 2");

9
LES COMPOSANTS
GRAPHIQUES
5. La classe TextComponent
Permettent l'édition de texte : TextArea et TextField.
a. String getSelectedText( ); Renvoie le texte sélectionné
b. int getSelectionStart( ); Renvoie la position de début de sélection
c. int getSelectionEnd( ); Renvoie la position de fin de sélection
d. String getText( ); Renvoie le texte contenu dans l'objet
e. boolean isEditable( ); Retourne un booléen indiquant si le texte est modifiable
f. void select(int start, int end ); Sélection des caractères situés entre start et end
g. void selectAll( ); Sélection de tout le texte
h. void setEditable(boolean b); Autoriser ou interdire la modification du texte
i. void setText(String s ); Définir un nouveau texte

10
LES COMPOSANTS
GRAPHIQUES
5. La classe TextComponent
Les champs de texte: TextField: Constructeurs:

TextField();
TextField( int );prédétermination 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

11
LES COMPOSANTS
GRAPHIQUES
5. La classe TextComponent
Les champs de texte: TextField: Méthodes
lecture de la chaîne saisie: String saisie= tf.getText( );
lecture du nombre de caractères prédéfini: int i = tf.getColumns( );
saisie d'un mot de passe: tf.setEchoCharacter('*');

12
LES COMPOSANTS
GRAPHIQUES
5. La classe TextComponent:
Les zones de texte multilignes: TextArea: constructeurs
TextArea()
TextArea( int, int ): avec prédétermination 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

13
LES COMPOSANTS
GRAPHIQUES
6. Les listes:
Constructeurs:
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

14
LES COMPOSANTS
GRAPHIQUES
6. Les listes:
Méthodes:
void addItem(String); void addItem(String, int)
void delItem(int); void delItems(int, int)
void clear()
void replaceItem(String, int);int countItems()
String getItem(int); void select(int)
setMultipleSelections(boolean); void deselect(int)
int getSelectedIndex( ); String getSelectedItem( )
Exemple 1- Fiche TP 15
LES COMPOSANTS
GRAPHIQUES
7. Les cases à cocher: un objet de la classe java.awt.Checkbox
Constructeurs:
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
Méthodes:
void setLabel(String); void setState( boolean )
boolean getState( ); String getLabel( ) 16
LES COMPOSANTS
GRAPHIQUES
7. Les boutons radio: un objet de la classe ava.awt.CheckboxGroup
Constructeurs:
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);
Méthodes:
Checkbox getCurrent();
setCurrent(Checkbox);
17
LES COMPOSANTS
GRAPHIQUES
8. Les conteneurs
Les conteneurs sont des objets graphiques qui peuvent contenir d'autres objets
graphiques. Ils héritent de la classe Container.
 Panel: conteneur sans fenêtre propre. Utile pour ordonner les contrôles
 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 complètement 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 grâce à la méthode
18
add(Component) de la classe Container.
LES COMPOSANTS
GRAPHIQUES
8. Les conteneurs
Panel: Constructeurs
Panel()
Panel(LayoutManager): Permet de préciser un layout manager
Frame: Constructeurs:
a. Frame():
Exemple : Frame f = new Frame( );
b. Frame(String): Précise le nom de la fenêtre
Exemple : Frame f = new Frame(« titre »);
19
LES COMPOSANTS
GRAPHIQUES
Frame: Méthodes:
• Image getIconImage(): déterminer l'icone actuelle de la fenêtre
• MenuBar getMenuBar(): déterminer la barre de menus actuelle
• String getTitle(): déterminer le titre de la fenêtre
• boolean isResizeable(): déterminer 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 menus
• void setResizeable(boolean): définir si la taille peut être modifiée
• void SetTitle(String): définir le titre de la fenêtre 20
LES COMPOSANTS
GRAPHIQUES
Les menus: Il faut insérer les menus dans des objets de la classe Frame (fenêtre
d'encadrement)

21
LA MISE EN PAGE PAR FLOT
(FLOWLAYOUT)
La classe FlowLayout (mise en page flot) place les composants ligne par ligne de
gauche à droite. Chaque ligne est complétée progressivement jusqu'à être remplie, puis
passe à la suivante. Chaque ligne est centrée par défaut.
Il existe plusieurs constructeurs :
FlowLayout( );
FlowLayout( int align); : Permet de préciser l'alignement des composants dans le
conteneur (CENTER, LEFT, RIGHT ... ).
FlowLayout( int align, int hgap, int vgap); Permet de préciser l'alignement et
l'espacement horizontal et vertical dont la valeur par défaut est 5.

22
LA MISE EN PAGE BORDURE
(BORDERLAYOUT)
Avec ce Layout Manager, la disposition des composants est commandée par une
mise en page en bordure qui découpe la surface en cinq zones : North, South,
East, West, Center. On peut librement utiliser une ou plusieurs zones.
Il existe plusieurs constructeurs :
BorderLayout( )
BorderLayout (int hgap,int vgap): Permet de préciser l'espacement horizontal et
vertical des composants.

23
LA MISE EN PAGE BORDURE
(BORDERLAYOUT)
add(new Button("North"), BorderLayout.NORTH);
add(new Button("South"), BorderLayout.SOUTH);

24
LA MISE EN PAGE
GRIDLAYOUT
Ce Layout Manager établit un réseau de cellules identiques qui forment une
sorte de quadrillage invisible : les composants sont organisés en lignes et en
colonnes. Les éléments insérés dans la grille ont tous la même taille. Les
cellules du quadrillage se remplissent de gauche à droite ou de haut en bas.

GridLayout( int, int ); Les deux premiers entiers spécifient le nombre de lignes
ou de colonnes de la grille.
GridLayout( int, int, int, int ); permet de préciser en plus l'espacement
horizontal et vertical des composants.

25
L'INTERCEPTION DES
ACTIONS DE L'UTILISATEUR
N'importe quelle interface graphique doit interagir avec l'utilisateur et donc réagir à certains
événements.
Les événements utilisateurs sont gérés par plusieurs interfaces EventListener.
Les interfaces EventListener permettent de définir les traitements en réponse à des événements
utilisateurs généré par un composant. Une classe doit contenir une interface auditrice pour
chaque type d'événements à traiter :
 ActionListener : clic de souris ou enfoncement de la touche Enter
 ItemListener : utilisation d'une liste ou d'une case à cocher
 MouseMotionListener : événement de souris
 WindowListener : événement de fenêtre
 L'ajout d'une interface EventListener impose plusieurs ajouts dans le code
26
L'INTERCEPTION DES
ACTIONS DE L'UTILISATEUR
1. importer le groupe de classes java.awt.event
import java.awt.event.*;
2. la classe doit déclarer qu'elle utilisera une ou plusieurs interfaces d'écoute:
public class MonApplet extends Applet implements ActionListener, MouseListener {}
3. Appel à la méthode addXXX() pour enregistrer l'objet qui gérera les
événements XXX du composant
Button b = new Button("boutton");
b.addActionListener(this);

27
L'INTERCEPTION DES
ACTIONS DE L'UTILISATEUR
4. implémenter les méthodes déclarées dans les interfaces
Chaque auditeur possède des méthodes différentes qui sont appelées pour traiter
leurs événements. Par exemple, l'interface ActionListener envoie des
événements à une méthode nommée actionPerformed( ).
public void actionPerformed(ActionEvent evt) {
//insérer ici le code de la méthode
}

28

Vous aimerez peut-être aussi