Vous êtes sur la page 1sur 13

Matire : POO en java Niveau : TI 2 Branche : Technologie de lInformatique

Les interfaces graphiques


I. Introduction

Les interfaces graphiques assurent le dialogue entre les utilisateurs et une application. Dans un premier temps, Java propose l'API AWT (LAbstract Windowing Toolkit ) pour crer des interfaces graphiques. Ensuite, Java propose une nouvelle API nomme Swing.

Ces deux API peuvent tre utilises pour dvelopper des applications ou des applets. Face aux problmes de performance de Swing, IBM a dvelopp sa propre bibliothque nomme SWT utilise pour dvelopp l'outil Eclipse.

II.
Exemple :

Les composants graphiques

import java.awt.Button; import java.awt.Frame; import java.awt.Panel; import java.awt.event.*; public class button { public static void main(String argv[]) { Frame f = new Frame("ma fenetre"); f.setSize(300,100); Panel pannel = new Panel(); Button bouton1 = new Button("Bouton1"); pannel.add(bouton1); f.add(pannel); f.setVisible(true) ; bouton1.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0);}}); }

II.2 Les listes droulantes (combobox) Il faut utiliser un objet de la classe java.awt.Choice Cette classe ne possde qu'un seul constructeur qui ne possdent pas de paramtres. Choice maCombo = new Choice(); Les mthodes add() et addItem() permettent d'ajouter des lments la combo. maCombo.addItem("element 1"); // ou maCombo.add("element 2");

Exemple: import java.awt.Choice; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.Label; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; class selecteur_choix extends Frame implements ItemListener { selecteur_choix(){ add( new Label( "choisir :" ) ) ; Choice choix = new Choice() ; // cre un slecteur choix.addItem( "choix 1" ) ; // ajoute un item choix.addItem( "choix 2" ) ; choix.addItemListener( this ) ; // senregistre en rcepteur dvnement

add( choix ) ; // ajoute choix la frame } public void itemStateChanged (ItemEvent e ) { //gre les vnements if(e.getItem().equals(" choix 1 ")); // si premier item System.out.println ( "premier choix "); if(e.getItem().equals(" choix 2")); System.out.println("deuxieme choix"); } public static void main(String [] args){ Frame sel_ch = new selecteur_choix(); sel_ch.setTitle( "titre de la fentre" ) ; sel_ch.setLayout( new FlowLayout() ) ; // arrange les composants de droite gauche sel_ch.setSize( 200, 200 ) ; // ajuste la taille de la fentre sel_ch.setVisible(true); } }

II.4 Les champs de texte : TextField Il faut dclarer un objet de la classe java.awt.TextField Il existe plusieurs constructeurs : TextField(); TextField( int ); prdtermination du nombre de caractres saisir TextField( String ); avec texte par dfaut

TextField( String, int ); avec texte par dfaut et nombre de caractres saisir II.5 Les zones de texte multilignes: TextArea Il faut dclarer un objet de la classe java.awt.TextArea Il existe plusieurs constructeurs : TextArea() TextArea( int, int ) : avec prdtermination du nombre de lignes et de colonnes TextArea( String ) : avec texte par dfaut TextArea( String, int, int ) : avec texte par dfaut et taille II.6 Les listes Il faut dclarer un objet de la classe java.awt.List. Il existe plusieurs constructeurs : List( ) List( int ) : permet de prciser le nombre de lignes affiches List( int, boolean ): permet de prciser le nombre de lignes affiches et l'indicateur de slection multiple II.7 Les boutons radio Dclarer un objet de la classe java.awt.CheckboxGroup 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); II.8 Les cases cocher

Il faut dclarer un objet de la classe java.awt.Checkbox Il existe plusieurs 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 II.9 Les barres de dfilement Il faut dclarer un objet de la classe java.awt.Scrollbar Il existe plusieurs constructeurs : Scrollbar( ) Scrollbar(orientation) Scrollbar( orientation, valeur_initiale, visible, min, max ) orientation : Scrollbar.VERTICALE ou Scrollbar.HORIZONTAL

valeur_initiale : position du curseur la cration visible : taille de la partie visible de la zone dfilante min : valeur minimale associe la barre max : valeur maximale associe la barre

III. Le conteneur Frame


Permet de crer des fentres d'encadrement. Il hrite de Window qui ne s'occupe que de l'ouverture de la fentre. Window ne connait pas les menus ni les bordures qui sont grs par Frame. Il existe deux constructeurs :

Frame() Exemple : Frame f = new Frame( ); Frame(String) : prcise le nom de la fentre Exemple : Frame f = new Frame( titre ); Exemple :

IV. Le conteneur Dialog


La classe Dialog hrite de la classe Window. Une bote de dialogue doit drive de la Classe Dialog de package java.awt. Un objet de la classe Dialog doit dpendre d'un objet de la classe Frame. Exemple : import java.awt.*; public class Apropos extends Dialog { public APropos(Frame parent) { setSize(300, 300); setResizable(False); ... }

V. Les menus
Il faut insrer les menus dans des objets de la classe Frame (fentre d'encadrement).

Exemple : class exp_menu extends Frame { exp_menu(){ // Les MenuItem MenuItem item = new MenuItem( "item" ) ; MenuItem quitter =new MenuItem( "Quitter" ); //Le Menu Menu menu = new Menu("Fichier") ; //lajout des MenuItems au Menu menu.add( item ) ; menu.add( quitter ) ; //Le MenuBar MenuBar mb=new MenuBar(); //Lajout de Menu au MenuBar mb.add(menu); //Lajout de MenuBar au frame setMenuBar(mb); } // La mthode main public static void main(String [] args){ Frame frame = new exp_menu(); frame.setTitle( "titre de la fentre" ) ; // arrange les composants de droite gauche

frame.setLayout( new FlowLayout() ) ; // ajuste la taille de la fentre frame.setSize( 200, 200 ) ; frame.setVisible(true); } } VI. Le gestionnaire de placement Le gestionnaire de placement (*Layout) permet de disposer le composants (Component) dans un conteneur (Container).

Les conteneurs Panel a le gestionnaire de placement FlowLayout par dfaut : les composants sont placs de gauche droite et de haut en bas. public class Flow extends java.applet.Applet{ public void init(){ add( new Button( "un" ) ) ; add( new Button( "deux" ) ) ; add( new Button( "trois" ) ) ; add( new Button( "quatre" ) ) ; add( new Button( "cinq" ) ) ; } }

Le gestionnaire de placement GridLayout place les composants selon une grille ; Mettre en place un nouveau gestionnaire se fait avec setLayout( new GridLayout( 3, 2 ) ) ; public class Grid extends java.applet.Applet{ public void init(){ setLayout( new GridLayout( 3, 2 ) ) ; add( new Button( "un" ) ) ; add( new Button( "deux" ) ) ; add( new Button( "trois" ) ) ; add( new Button( "quatre" ) ) ; add( new Button( "cinq" ) ) ; } }

Le gestionnaire de placement GridLayout place les composants selon une position gographique par rapport au bord de la fentre. public class Border extends java.applet.Applet{ public void init(){

setLayout( new BorderLayout() ) ; add( "North", new Button( "un" ) ) ; add( "East", new Button( "deux" ) ) ; add( "South", new Button( "trois" ) ) ; add( "West", new Button( "quatre" ) ) ; add( "Center", new Button( "cinq" ) ) ; } }

Le gestionnaire de placement CardLayout permet denchaner des crans. Exemple 1/2: import java.applet.Applet ; public class Card extends Applet implements ActionListener{ private CardLayout cartes = new CardLayout(); private Panel panel1 = new Panel() ; private Panel panel2= new Panel() ; public void init(){ panel1.add( new Checkbox( "Choix 1" ) ) ; panel1.add( new Checkbox( "Choix 2" ) ) ; Button bouton1 = new Button( "Suivant" ) ; bouton1.addActionListener( this ) ; panel1.add( bouton1 ) ; Button bouton2 = new Button( " Terminer " ) ;

Exemple 2/2: bouton2.addActionListener( this ) ; panel2.add(boutton2); setLayout(cartes); Add (un, panel1); Add (deux, panel2); } public void actionPerformed( ActionEvent e ){ if( e.getActionCommand().equals( "Suivant" ) ) //passer au panel suivant cartes.next(this); if( e.getActionCommand().equals( "Terminer" ) ) {// } } }

Exemple 1:
import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;

public class button {

public static void main(String[] args) { Frame f=new Frame("ma fenetre"); f.setSize(300,100); Panel pannel=new Panel(); Button bouton1=new Button("boutn1"); bouton1.addActionListener ( new ActionListener() { public void actionperformed(ActionEvent e) { System.exit(0); } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub } }); pannel.add(bouton1); f.add(pannel); f.setVisible(true); } }

Exemple 2:
import javax.swing.JOptionPane; public class msgdiag { public static void main(String[] args) { JOptionPane.showMessageDialog(null,"les interfaces grapfiques -- Swing","Swing !!",JOptionPane.INFORMATION_MESSAGE); } }