Programmation Objet et langage Java 2013-2014 -1-
Daniel Tschirhart. TD Java Edition du 09/09/2013, mise à jour 09/09/13 (TD08.docx).
TD8. MISE EN OEUVRE DES INTERFACES GRAPHIQUES
Buts poursuivis par ce TD
Assimiler la programmation événementielle.
Assimiler l'API graphique AWT.
Réutiliser les objets.
Cahier des charges
L’exercice consiste à remplacer l'interface en mode console du TD précédent (DesMots) par une interface plus élaborée (voir
ci-dessous). Cette interface est implémentée à l’aide d’une frame de la bibliothèque AWT : classe DesMotsG.
L'interface graphique est spécifiée de façon suivante :
buttonDir : spécifie le fichier à analyser à
l’aide d’un objet de la classe FileDialog
labelOccurence : contient le résultat de la
requête "Occurrence d'un mot"
buttonOccur : ouvre une boite de dialogue
permettant de spécifier le mot dont on veut
connaitre l'occurrence.
labelRichesse: contient le nombre de
mots différents du texte.
buttonRichesse : lance la requête
"richesse du vocabulaire"
buttonVueGlobale:lance la requête
permettant d'avoir une vue globale du texte
analysé.
checkboxFichier,checkboxListe :
précise la sortie de la requête "vue globale"
dlgOccur : boite de dialogue permettant de
spécifier le mot dont on désire connaitre
l'occurrence.
textFieldMot : contient le mot dont on
désire connaitre l'occurrence.
buttonOK : sa validation provoque la mise à
jour
Fonctionnement
1. Au lancement de l'application seul le bouton "Fichier à analyser"
est actif. Après avoir spécifié le fichier à analyser, les autres
boutons deviennent actifs.
2. Le nom du fichier analysé est inscrit dans la barre de titre. Ici
Les3Mousquetaires.txt.
3. L'appui du bouton "occurrence d'un mot" provoque l'ouverture
d'une boite de dialogue permettant de saisir le mot :
4. La validation de la boite de dialogue provoque sa disparition et
met à jour la fenêtre principale.
Liste contenant le
résultat de la requête
"vue globale"
Programmation Objet et langage Java 2013-2014 -2-
Daniel Tschirhart. TD Java Edition du 09/09/2013, mise à jour 09/09/13 (TD08.docx).
5. L'appui sur le bouton "Vue globale" ne provoque aucune action si
aucune case à cocher n'est cochée.
6. L'appui sur le bouton "Vue globale" avec la case à cochée "Sortie
sur écran" affiche les résultats dans la boite à liste puis décoche la
case à cocher.
7. L'appui sur le bouton "Vue globale" avec la case à cochée "Sortie
sur fichier" enregistre les résultats dans un fichier
Result<fichier analysé> puis décoche la case à cocher.
Travail demandé
1. Le code généré par Visual Editor pour la classe DesMotsG est
donné ci-dessous. Compléter les zones laissées vierges.
import java.awt.*;
import java.io.*;
public class DesMotsG extends Frame
{
private static final long serialVersionUID = 1L;
private Button buttonDir = null;
private Button buttonOccur = null;
private Label labelOccurence = null;
private Button buttonRichesse = null;
private Label labelRichesse = null;
private List listeGlobale = null;
private Button buttonVueGlobale = null;
private Checkbox checkboxFichier = null;
private Checkbox checkboxListe = null;
private Button getButtonDir()
{
if (buttonDir == null)
{
this.setSize(new Dimension(435, 454));
buttonDir = new Button();
buttonDir.setBounds(new Rectangle(232, 49, 149, 23));
buttonDir.setLabel("Fichier à analyser");
buttonDir.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent e)
{
}
});
}
return buttonDir;
}
/**
* This method initializes buttonOccur
Programmation Objet et langage Java 2013-2014 -3-
Daniel Tschirhart. TD Java Edition du 09/09/2013, mise à jour 09/09/13 (TD08.docx).
* @return java.awt.Button
*/
private Button getButtonOccur()
{
if (buttonOccur == null)
{
buttonOccur = new Button();
buttonOccur.setBounds(new Rectangle(232, 116, 149, 23));
buttonOccur.setEnabled(false);
buttonOccur.setLabel("Occurence d'un mot");
buttonOccur.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent e)
{
}
});
}
return buttonOccur;
}
/**
* This method initializes buttonRichesse
*
* @return java.awt.Button
*/
private Button getButtonRichesse()
{
if (buttonRichesse == null)
{
buttonRichesse = new Button();
buttonRichesse.setBounds(new Rectangle(232, 189, 149, 23));
buttonRichesse.setEnabled(false);
buttonRichesse.setLabel("Richesse vocabulaire");
buttonRichesse.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent e)
{
}
});
}
return buttonRichesse;
}
/**
* This method initializes listeGlobale
*
* @return java.awt.List
*/
private List getListeGlobale()
{
if (listeGlobale == null)
{
listeGlobale = new List();
listeGlobale.setBounds(new Rectangle(13, 46, 208, 293));
listeGlobale.setFont(new Font("Dialog", Font.PLAIN, 14));
}
return listeGlobale;
}
/**
* This method initializes buttonVueGlobale
* @return java.awt.Button
Programmation Objet et langage Java 2013-2014 -4-
Daniel Tschirhart. TD Java Edition du 09/09/2013, mise à jour 09/09/13 (TD08.docx).
*/
private Button getButtonVueGlobale()
{
if (buttonVueGlobale == null)
{
buttonVueGlobale = new Button();
buttonVueGlobale.setBounds(new Rectangle(232, 228, 149, 23));
buttonVueGlobale.setEnabled(false);
buttonVueGlobale.setLabel("Vue globale");
buttonVueGlobale.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent e)
{
}
});
}
return buttonVueGlobale;
}
/**
* This method initializes checkboxFichier
* @return java.awt.Checkbox
*/
private Checkbox getCheckboxFichier()
{
if (checkboxFichier == null)
{
checkboxFichier = new Checkbox();
checkboxFichier.setBounds(new Rectangle(232, 272, 112, 23));
checkboxFichier.setLabel("Sortie sur fichier");
}
return checkboxFichier;
}
/**
* This method initializes checkboxListe
* @return java.awt.Checkbox */
private Checkbox getCheckboxListe()
{
if (checkboxListe == null)
{
checkboxListe = new Checkbox();
checkboxListe.setBounds(new Rectangle(232, 316, 112, 23));
checkboxListe.setLabel("Sortie sur écran");
}
return checkboxListe;
}
/**
* @param args
*/
Programmation Objet et langage Java 2013-2014 -5-
Daniel Tschirhart. TD Java Edition du 09/09/2013, mise à jour 09/09/13 (TD08.docx).
public static void main(String[] args)
{
}
/**
* This is the default constructor
*/
public DesMotsG()
{
super();
initialize();
}
/**
* This method initializes this
* @return void
*/
private void initialize()
{
labelRichesse = new Label();
labelRichesse.setBounds(new Rectangle(229, 152, 150, 23));
labelRichesse.setAlignment(Label.CENTER);
labelRichesse.setFont(new Font("Dialog", Font.BOLD, 14));
labelRichesse.setText("");
labelOccurence = new Label();
labelOccurence.setBounds(new Rectangle(232, 80, 149, 23));
labelOccurence.setBackground(Color.lightGray);
labelOccurence.setFont(new Font("Dialog", Font.BOLD, 14));
labelOccurence.setForeground(Color.black);
labelOccurence.setAlignment(Label.CENTER);
labelOccurence.setText("");
this.setLayout(null);
this.setSize(399, 359);
this.setBackground(Color.lightGray);
this.setName("frame");
this.setTitle("Des mots");
this.add(getButtonDir(), null);
this.add(getButtonOccur(), null);
this.add(labelOccurence, null);
this.add(getButtonRichesse(), null);
this.add(labelRichesse, null);
this.add(getListeGlobale(), null);
this.add(getButtonVueGlobale(), null);
this.add(getCheckboxFichier(), null);
this.add(getCheckboxListe(), null);
this.addWindowListener(new java.awt.event.WindowAdapter()
{
public void windowClosing(java.awt.event.WindowEvent e)
{
System.exit(0);
}
});
}
1 / 7 100%