UP PREVIOUS NEXT   Technologies Internet et Education, © TECFA
  2. Programmation d'applications avec un GUI

2. Programmation d'applications avec un GUI

2.1 Introduction à l'AWT

A. Classes importantes dans le package AWT

Catégorie

Fonctionalités

Packages/Classes

graphisme

Dessin de formes, lignes, images, sélection de fontes, couleurs, etc,

java.awt.Graphics

 

composantes

buttons, champs de texte, menus, scroll bars

java.awt.Component

layout managers

affichent des composantes qui ont été mise dans un "containter"

java.awt.BorderLayout

java.awt.GridBagLayout

java.awt.FlowLayout, etc.

gestionnaires d'événements

récupération des gestes de l'utilisateur, avec des handlers, listeners et adapters

Souspackage:

java.awt.event

manipulation d'images

gifs et companie

Souspackage:

java.awt.image

2.2 Applications simples avec un GUI

Exemple 2-1: Simple fenêtre avec bouton pour la fermer

http://tecfa.unige.ch/guides/java/staf2x/ex/gui/ButtonTest2.java

import java.awt.*;
import java.awt.event.*;
 
public class ButtonTest2 extends Frame implements ActionListener {
 
/* The Button test Program  Java 1.1 by T Abbott and J Bishop Oct 1997
* a simplified version SMM / TECFA Nov 98
* Prints a warning message, and
* Illustrates Buttons, Listeners and the 
* handling of events. */
Button OkButton;
Label TheLabel;
 
public ButtonTest2 () {
/* The constructor is responsible for setting 
 * up the initial buttons and colour background. */
		setLayout(new FlowLayout(FlowLayout.CENTER));
		setBackground(Color.black);
		setForeground(Color.cyan);

// create and add a Label

		TheLabel = new Label("W A R N I N G");
		add(TheLabel);

// create & add a button, plus an ActionListener to the button

		OkButton = new Button("Ok");
		OkButton.addActionListener(this);
		add(OkButton);
    }
 

// implement actionPerformed

public void actionPerformed(ActionEvent e) {
		setVisible(false);
		dispose();
		System.exit (0);
    }
 
public static void main(String[] args) {
		Frame f = new ButtonTest2();
		f.setTitle("Button Test 2");
		f.setSize(160,60);
		f.setVisible(true);

// allows to close the application

		f.addWindowListener (new WindowAdapter () {
			public void windowClosing(WindowEvent e) {
			System.exit(0);
	    }
     });
}  }

Voir aussi une variante:
http://tecfa.unige.ch/guides/java/staf2x/ex/gui/ButtonTest.java

A. Explications

Frame est la fenêtre de base:
public class ButtonTest2 extends Frame implements ActionListener {....}
    • étend la classe Frame
    • Frame hérite des classes awt Window , Container , Componen t
Gestion des événements: les ActionListeners
public class ButtonTest2 extends Frame implements ActionListener {....}
    • implémente l'Interface java.awt.event.ActionListener
    • Cette "classe" exige que l'on implémente la méthode actionPerformed à qui les événnements sont passés
Gestion du Layout et composantes interactives:
setLayout(new FlowLayout(FlowLayout.CENTER));
    • définit un Layout manager pour le frame: ici un FlowLayout centré
OkButton = new Button("Ok");
OkButton.addActionListener(this);
add(OkButton);
    • on crée un objet buton
    • on rajoute ce bouton dans le "ActionListener" pour le Frame
    • finalement on rajoute le bouton dans le containeur (le frame ici).
Implémentation de actionPerformed:
public void actionPerformed(ActionEvent e) {
   setVisible(false);
   dispose();
   System.exit (0);
  }
    • Pour tout Frame avec un Action Listener, on doit implémenter la méthode actionPerformed
    • normalement il aurait fallu tester pour savoir quel geste l'utilisateur a fait. Voir Bishop (1998) 303ff.
    • Ici il n'y a qu'un bouton et il suffit d'agir (on ferme l'application).

UP PREVIOUS NEXT -- TIE