1
Plan
Objectif : maitriser le développement d’interfaces graphiques en Java
connaissance des API AWT et Swing de composants graphiques
gestion des événements et du comportement de ces composants
apprentissage d’une bonne pratique de structuration des applications (modèle MVC)
Plan
1- rappels sur AWT, ses conteneurs, ses composants
2- Swing, ses containers, ses composants les plus simples
3- Les gestionnaires de géométrie en Java
4- Gestion des événements en Java
5- Le MVC : Modèle Vue Controleur
6- Le MVC dans Swing, JTree, JList, JTable
Bibliographie : java.sun.com (API et tutoriaux)
2
Les interfaces graphiques en Java
Les programmes à interfaces graphiques font usage
des classes awt (package java.awt) et/ou
swing (package javax.swing).
Ces classes représentent des composants
graphiques, des conteneurs de composants,
des utilitaires de placement des composants
dans les conteneurs et des classes d’interaction
utilisant le modèle d’événement Java
3
Généralités sur AWT (1/2)
Historiquement, AWT (Abstract Window Toolkit) est la première API
graphique de Java (version 1.0 du JDK).
AWT utilise au maximum le système graphique sous-jacent, via la
machine virtuelle Java qui fait appel au système graphique natif (MS
windows, X Windows, Mac OS X, ...).
package java.awt;
public class Button{
...
}
Composant Bouton
de MS Windows
4
Généralités sur AWT (2/2)
Avantages :
l’aspect et le comportement des applications graphiques est conforme à
ceux des autres applications qui tournent sur le même OS
l’application bénéficie de l’efficacité, en terme de rapidité, des composants
graphiques natifs
pas besoin de réimplémenter tout les composants
Inconvénients :
ne permet de fournir que les composants graphiques disponibles pour
toutes les plateformes
impossibilité de garantir une uniformité des comportements et des
apparences d’une même application d’un OS à l’autre
5
Généralités sur Swing (1/2)
Swing est une extension de AWT, et existe depuis
le JDK 1.2. JFC (Java Fundation Classes) =
Java2D + copier/coller entre applications + Swing
Swing a adopté l’approche inverse : faire le moins
possible appel aux composants graphiques de
l’OS, et uniquement pour des opérations de base
(ouvrir une fenêtre, dessiner une ligne ou du texte,
gérer les événements).
package java.awt;
public class JButton{
...
public void paint(){
...
}
}
dessin de lignes sous
MS Windows
6
Généralités sur Swing (2/2)
Avantages :
Apparence et comportement indépendants des plateformes (Look and Feel)
Possibilités d’introduire de nouveaux composants pour toutes les plateformes
(Swing est bien plus riche qu’AWT)
Inconvénients :
Besoin de réimplémenter les composants existants dans les OS
Les applications n’ont pas forcément les mêmes apparences et
comportements que les autres applications de l’OS
Les applications sont moins rapides (?)
7
Les classes AWT
8
Les conteneurs AWT
Container classe générale qui regroupe
des composants, responsable du layout
Window conteneur pour interaction avec le
système
Frame fenêtre principale d'application
Dialog fenêtre d’interaction avec
l’utilisateur
Panel conteneur de base
Applet pour exécution dans un navigateur
(package applet)
ScrollPane intègre un conteneur
d'ascenseurs
Component
Container
Window
Frame
Dialog
FileDialog
Panel
applet.Applet
ScrollPane
9
Utilisation des containers
public class ContainerTest extends Frame {
public ContainerTest(){
super("ContainerTest");
Panel p = new Panel();
p.setBackground(Color.YELLOW);
this.add(p);
this.setSize(300,200);
this.setVisible(true);
p.getGraphics().drawString("Bonjour le monde!!", 50,50);
}
}
public ContainerTestBis(){
super("ContainerTestBis");
this.setBackground(Color.YELLOW);
this.setSize(300,200);
this.setVisible(true);
Dialog d = new Dialog(this,"Dialoguer avec moi",true);
d.setSize(100,50);
d.setResizable(false);
d.setVisible(true);
}
public void paint(Graphics g){
g.drawString("Bonjour le monde!!", 50,50);
}
10
Applet
Applet est un Panel spécialisé. Une instance de Applet est
incorporée dans un conteneur pour exécution. Une instance de
Applet n'est donc pas une application autonome.
Elle peut être incluse dans une
page Web.
Elle récupère les paramètres
de la balise <PARAM... du
code HTML via la méthode
getParameter(String)
<APPLET
[CODEBASE = url du répertoire]
CODE = fichier de l'applette
WIDTH = largeur du conteneur
HEIGTH = sa hauteur
[ALT = texte de remplacement]
[ARCHIVE = fichiers archives]
[NAME = nom de l'instance de l'applette ]
[ALIGN = top, middle, left (dans la page)]
[VSPACE = marges haute et basse]
[HSPACE = marges gauche et droite]
>
[<PARAM NAME = nom VALUE = sa valeur>]
[< ... >]
</APPLET>
1 / 17 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !