Académique Documents
Professionnel Documents
Culture Documents
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 :
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
Frame() Exemple : Frame f = new Frame( ); Frame(String) : prcise le nom de la fentre Exemple : Frame f = new Frame( titre ); Exemple :
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 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); } }