Beruflich Dokumente
Kultur Dokumente
Caractristiques de Java
Java est un langage de programmation moderne dvelopp
par Sun Microsystems (aujourd'hui rachet par Oracle)
Java est un langage de programmation oriente objets
Java fonctionne comme une machine virtuelle (indpendant
de toute plate forme)
Java est simple (pas de pointeur, pas dhritage multiple)
Java est gratuit
Java contient une trs riche bibliothque de classes
(Packages) qui permettent de:
Crer des interfaces graphiques
Utiliser les donnes multimdia
Communiquer travers les rseaux
Environnement de Java
1. Java Developers Kit (JDK)
Le compilateur (javac)
Linterprteur (java), ou bien Un JRE (Java Runtime
Environment)
Lappletviewer (inspecteur dapplet)
3. La compilation
La compilation va transformer le code source en j-code ou byte-code
java
Javac nom_fich.java
Cration dun fichier nom_fich.class
4. La machine virtulle Java (JVM)
Le code java comprend des instructions crites pour JVM
Un programme java est excut sur tout ordinateur (tout OS) pour
lequel une machine virtuelle est disponible
Une application sera excute par linterprteur de java
Java nom_fich.java
JVM va faire le lien entre le byte code et la machine.
Convention dcriture en Java
Type Convention Exemple
Nom dune classe Dbute par une majuscule Class Voiture
Nom dune variable Dbute par une minuscule premierObjet
Nom de mthode Dbute par une minuscule Void demarre()
sauf pour le constructeur
Constante Scrit en majuscule CONST
Nom de fichier Ne contient pas de blanc et Nom_fich
source ne commence jamais par
des chiffres
Compilation
Code_source.java code_binaire.class
NomClasse
Mthode
principale
Manger
Fille Boire
Parler
Un prnom Dormir
Un nom
Rougir
Une date de naissance
Une adresse
Un lieu de naissance
Manger
Fille Boire
Parler
Un prnom Dormir
Un nom
Rougir
Une date de naissance
Une adresse
Un lieu de naissance
private int id ;
private String nom;
private String prenom; On les appelle variables
private String dateNaissance; dinstance.
private String lieudeNaissance;
private int id ;
private String nom;
private String prenom; Les variables de la classe
private String dateNaissance;
private String lieudeNaissance;
}
Il faudra utiliser le mot cl static pour dclarer une
variable de classe.
Une variable de classe est une variable qui est
commune toutes les instances de cette classe. Une
variable de ce type peut tre accessible sans avoir
passer par une instance de la classe.
Rsum: Un objet est un lment (ou instance) d'une classe. L'objet est
le composant effectif des programmes (c'est lui qui calcule) alors que la
classe est plutt une dfinition ou une spcification pour l'ensemble des
instances venir.
Dclaration dun objet
Pour utiliser une classe, elle doit tre instancie. Il y
aura alors cration dun objet. Mais avant de crer un
objet il faut le dclarer:
NomClasse nomObjet ;
Fille salma ;
On vient de dclarer un objet de type Fille qui sappelle
salma. Il va falloir construire lobjet.
Public
Priv (Private)
Protg (Protected)
Lencapsulation
Public
Accessible par tout le monde (toutes les mthodes)
Priv
Uniquement manipulable par lobjet lui-mme.
(utilise que par les mthodes de la mme classe)
Protg
Final
primitive[ ] tableau;
ou
primitive tableau[ ];
Exemple: int[] tab1; ou int tab2[];
b. Dfinition dun tableau
La dfinition dun tableau est lopration dont le rsultat est la
cration dun objet tableau.
Les tableaux Java sont de taille fixe. La dfinition devra indiquer la
taille du tableau. La syntaxe employer est la suivante:
tableau= new primitive[dimension];
Dimension est le nombre dlments que le tableau pourra contenir
Comme les autres objets, les tableaux peuvent tre dclars et dfinis sur la
mme ligne:
int[] tab2 = new int[5];
Exemple:
class TableauA {
public static void main(String[] argv) {
char[] tableau;
tableau = new char[2];
tableau[0]=h;
tableau[1] = a;
System.out.println(tableau); // println utilise avec tableau de caractres
} }
A lexcution on aura: ha
Autre faon de dfinir un tableau
On peut dfinir un tableau avec un tableau littral au moment de sa
dclaration.
Exemple: boolean tableau[] = {true,false,true};
c. Longueur dun tableau
Peut tre trouve par lattribut length.
tab.length est la longueur du tableau tab.
class TableauB {
public static void main(String[] argv) {
int tableau[] = new int[3];
System.out.println("Taille du tableau: "+ tableau.length);
for(int i=0; i< tableau.length ; i++)
{ tableau[i] = i;
System.out.println(tableau[i]);
}
} }
Dpassement des bornes dun tableau
Le dpassement est une erreur non pas de compilation mais
dexcution.
Exemple: for(int i=0; i<= tableau.length ; i++)
On utilise les mots rservs catch et try pour intercepter
lexception.
d. Tableau multidimensionnel
Les tableau de java peuvent comporter plusieurs dimensions.
Pour dclarer un tableau multidimensionnel, in utilise la syntaxe
suivante:
Primitive[ ][ ] [ ] tableau;
Exemple: int[ ][ ] tableau;
Loprateur ?
Condition ? siVrai : siFaux ;
Exemple: int a=2, b=5;
int min=a<b ? a : b;
Linstruction switch
Switch (variable) {
case cas1: instruc11;
instruc12;
break;
case cas2: instruc21;
instruc22;
break;
default : instrDefault;
}
b. Les instructions de rptition
Linstruction while
while (condition)
Instruction;
Linstruction do while
do
instructions;
while (condition)
Linstruction for
Corrig:
String url="http://localhost:8080/mdp=blablabla&&login=bliblibli/";
String login=url.substring(22,url.lastIndexOf("/"));
System.out.println(login);
String mdp = login.substring(4, login.lastIndexOf("&&"));
//String x=login;
System.out.println(mdp);
System.out.println(mdp.length());
int longueur = 4+mdp.length()+8;
int log=login.length();
String identifiant=login.substring(longueur, log);
System.out.println(identifiant);
Exercice2:
Ecrire une application qui consiste faire en sorte que, l'excution,
tous les arguments passs par la ligne de commande soient crits en
sortie du programme (par System.out.println(...), un par ligne. Si les
arguments sont "Bonjour" et "Salut", le programme doit crire :
Bonjour
Salut.
En Eclipse, il faut donner le ou les argument(s) avant d'excuter le
programme en utilisant: "Run Configurations", puis l'onglet
"Arguments" et prciser les arguments dans "Program arguments".
Corrig:
public class EcrireArguments
{
public static void main(String[] argv)
{
int i;
for (i = 0; i < argv.length; i++)
System.out.println(argv[i]);
System.out.println(); // pour sauter une ligne
} }
Exercice3:
Ecrire un programme qui calcule la factorielle d'un entier n et indique
l'cran le rsultat. Le nombre n doit tre lu sur la ligne de commande.
Pour transformer une chane de caractres s en un int que l'on affecte une
variable entire n, on peut crire : n = Integer.parseInt(s);.
La mthode parseInt est une mthode statique de la classe java.lang.Integer.
Corrig:
class Factorielle
{
public static void main(String[] arg)
{
int n, factorielle = 1 ;
n = Integer.parseInt(arg[0]);
for (int i = 2; i <= n; i++)
factorielle *= i;
System.out.println("Voila la factorielle de " + n + " : " + factorielle);
}
}
9. Les attributs et mthodes statiques
Ce sont les attributs ou mthodes qui ont le modificateur static
Remarque:
Ces deux classes (UnPetitEcrivain et Statique) peuvent tre mises
dans le mme fichier mais obligatoirement ce fichier sappellera
Satique.java car sil ya au moins une classe publique dans un fichier,
ce fichier doit porter le mme nom que la classe publique .
9. La surcharge
Si plusieurs mthodes possdent le mme nom mais
diffrent par l'ensemble des types de ses paramtres, ou
par l'ordre des types de ses paramtres, on dit qu'il y a
surcharge.
Animal
Cest une assurance pour la classe de base que les classes enfants respecteront
bien les spcifications dfinies (contrats de services).
interface I1
{ }
abstract interface I2 //abstract nest pas ncessaire
{ }
public interface I3 extends I1, I2 // hritage multiple
{ }
Classe abstraite ou interface ?
Classes abstraites et interfaces ont chacune une fonction bien
distincte : les classes abstraites servent factoriser du code, tandis
que les interfaces servent dfinir des contrats de service.
Lorsque vous crivez votre programme, Eclipse peut vous aider complter
ce que vous crivez, en utilisant le raccourci clavier Control+Espace. Ce qu'il
propose dpend d'o vous vous trouvez dans votre programme.
Eclipse propose galement des raccourcis qui ajoutent du code prdfini. Par
exemple, main ajoute une mthode main, sysout ajoute un System.out.println.
Navigation
Une applet est une application crite en Java qui tourne travers le
web.
Une applet s'excute gnralement l'intrieur d'un Browser
(Netscape, Internet Explorer, Mosaic, ...).
Elle est appele dans le code HTML.
Elle peut tre teste dans un appletviewer.
Alors pour publier une applet sur Internet, il faut dabord crer une
page HTML .
Exemple Lapplet Bonjour
import java.applet.Applet;
import java.awt.Graphics;
Cette applet ne possde pas de mthode main(). Elle dfinit la classe Bonjour
comme tant une sous classe de la classe Applet et redfinit sa mthode
paint().
Il faut crer un programme HTML et y ajouter le code de
lapplet:
</applet>
javac Bonjour.java
appletViewer Bonjour.html
Le langage HTML
Le langage HTML (Hyper Text Markup Langage) sert dcrire des
pages utilises dans les navigateurs Web.
Il est purement statique et ne permet pas d'interactivit dans la page.
Il se prsente gnralement sous forme de fichier texte (filename.html).
Sa syntaxe est compose de markups qui indiquent le format
d'affichage.
A partir d'un fichier HTML on peut :
Lier un autre fichier
Afficher une image
Afficher une applet
etc
Ces diffrents lments peuvent se trouver en local sur le serveur
HTTP ou distants, on y accde par une URL.
Exemple de code HTML
</APPLET>
La structure d'une Applet
Une nouvelle applet "hrite" toujours de la classe Applet dont elle
contient les mthodes, en particulier, l'applet "descend" du Panel et
hrite donc de ses fonctionnalits graphiques.
La dclaration dune applet est toujours de la forme :
public class MaClasse extends java.applet.Applet
Une applet ne contient pas de mthode main. Elle est gre de faon
plus vnementielle. Dans le cas de Bonjour, c'est la mthode paint
(appele chaque visualisation de l'applet) qui affichera la chane de
caractres.
Cration et excution dune applet
4. Le test de lapplet
Remarque: Les paramtres sont rcuprs sous forme de String, il faut ensuite
A- Le paquetage java.awt
1. Les possibilits de java.awt
Avec java.awt, on peut par exemple:
Tracer diffrentes formes (rectangles, ovales, polygones, ...)
Dfinir des polices de caractres, des couleurs, ...
Crer des composants simples tels que boutons, cases cocher, libells, ...
Crer des composants plus complexes tels que boites de dialogues, menu
droulants, ...
Grer des vnements utilisateurs (clique sur un bouton, ...)
2. Les principales classes de java.awt
1. La classe Frame
La plupart des graphiques sont affichs dans des cadres (frames). Un cadre est une
fentre qui possde une barre de titre, une bordure, un curseur et une icne. Les
fentres cadres sont utilises pour afficher des lments graphiques.
Un composant (component) est un objet qui peut tre affich lcran et peut
interagir avec lutilisateur (par exemple le bouton de fermeture dans le coin
suprieur droit, la barre de dfilement...).
Exemple
import java.awt.Frame;
public class TestFrame {
Exemple
import java.awt.*;
public class TraceLigne extends Frame {
TraceLigne(String titre) { // Constructeur
super(titre); } /* appel au constructeur de la super classe Frame qui dessine une
fentre cache et appelle automatiquement la mthode paint*/
public void paint(Graphics g) {
g.setColor(Color.blue);
g.drawLine(50,65,150,100);
g.drawLine(50,66,150,101);} // dessin dune ligne paisse (2 pixels)
public static void main(String[] args) {
TraceLigne monDessin = new TraceLigne(Une ligne de 2 pixels dpaisseur);
monDessin.setSize(400,400);
monDessin.setVisible(true); //mthode de la classe java.awt.Component
}}
drawString(String texte, int x, int y): affiche la chaine de caractres
texte aux coordonnes (x,y) dans une applet. Elle est lquivalent de
System.out.println() qui ne peut pas tre employe dans une applet.
drawRect(int x, int y, int larg, int haut): affiche un rectangle vide partir
du point (x, y) de largeur larg et de hauteur haut.
(x,y)
Hauteur
larg: largeur
fillRect(int x, int y, int larg, int haut): affiche un rectangle plein partir
du point (x, y) de largeur larg et de hauteur haut.
largeur Hauteur
Exemple:
Color bleu_vert= Color.cyan;
setBackground (bleu_vert);
C. La classe Font
Laffichage des caractres est dfinie par 3 lments:
Le nom de la police: Helvetica, courier, Dialog, Times Roman, ...
Le style de la police: gras, italique ou normal
La taille de la police en points
Pour afficher un texte dans une police dfinie, avec un style dfini et une taille
prcise, on doit crer un objet Font qui contient ces information. Le constructeur
de la classe Font est:
Font(String nom, int style, int taille)
Nom: nom de la police
Style: style de la police qui peut tre lune des constantes:
Font.PLAIN: texte normal
Font.BOLD: texte gras
Font.ITALIC: texte italique
On peut combiner plusieurs styles par exemple: Font.BOLD +
Font.ITALIC
Taille: prcise la taille de la police en pixels
La liste des polices est retourne par la mthode getFontList() de la
classe java.awt.Tooolkit.
Exemple:
import java.awt.*;
A. Les tiquettes
Une tiquette (label) est une chaine de caractres qui ne dpasse pas une ligne et
qui permet dafficher un texte qui nest pas interactif.
Une tiquette peut tre positionne avec les fonctions de mise en page. Son rle
consiste donner des informations sur les autres contrles, notamment les zones
de saisie.
Pour accder une tiquette, il faut dabord dclarer un objet de la classe
java.awt.Label
Label l= new Label( Je suis une tiquette );
Add(l); // Affichage de ltiquette sur la fentre.
Le texte afficher et l'alignement peuvent tre modifis dynamiquement lors de
l'excution par:
l.setText("nouveau texte");
l.setAlignment(Label.LEFT);
Exemple: Affichage dune tiquette dans une fentre graphique
import java.awt.*;
}
B. Les boutons
Les boutons sont les contrles de tout cran dinterface, ils permettent de
dclencher des vnements que lon peut dtecter et traiter.
DemoBouton(String titre)
{
super(titre);
FlowLayout fl= new FlowLayout(); //gestionnaire de mise en forme ou en page
setLayout(fl); //pour affecter une nouvelle mise en page
monBouton1= new Button();
monBouton2= new Button();
monBouton1.setLabel("Bouton 1");
monBouton2.setLabel("Bouton 2");
add(monBouton1);
add(monBouton2);
}
public static void main(String[] args) {
DemoBouton monBouton = new DemoBouton("Insertion de boutons");
monBouton.setSize(400,400);
monBouton.setVisible(true);
}
Mise en forme d'une interface : La classe FlowLayout
Exemple: Lapplication suivante permet dafficher une case cocher de non Test.
Si lutilisateur active cette case le message Case active sera affich, sinon le
message: Case dsactive sera affich.
import java.awt.*;
class DemoCheckbox extends Frame
{
static boolean etat= false;
Checkbox test;
DemoCheckbox(String titre){
super(titre);
FlowLayout fl= new FlowLayout(); //gestionnaire de mise en page
setLayout(fl);
test=new Checkbox("TEST");
add(test);
}
public boolean action(Event e, Object arg){
if(test.getState()) {
etat=true;
repaint(); } //La mthode repaint() force l'excution de la mthode paint().
//Elle permet d'informer le programme d'un changement dans la fentre graphique
//par exemple, si on dplace un lment dans une fentre, on doit utiliser repaint()
//pour que l'image apparaisse son nouvel emplacement
else {
etat=false;
repaint(); }
return (true); }
public void paint(Graphics g){
g.setColor(Color.red);
g.setFont(new Font("Comic sans MS", Font.BOLD,20));
if(etat== true)
g.drawString("Case active", 50, 300);
else
g.drawString("Case dsactive", 50, 300); }
public static void main(String[] args) {
DemoCheckbox maCase= new DemoCheckbox ("Case cocher");
maCase.setSize(400,400);
maCase.setVisible(true); }}
Les Boutons radio
Une case cocher peut tre affiche individuellement ou dans un groupe. Les
boutons radio sont des cases cocher rassembles dans un groupe. A lintrieur
du groupe, on ne peut activer quune seule case la fois. La classe
java.awt.CheckboxGroup permet de crer des groupes de boutons radio.
CheckboxGroup br; // dclaration dun groupe de boutons radio
Checkbox b1= new Checkbox(tiquette1, tat1, br);
Checkbox b2= new Checkbox(tiquette2, tat2, br);
...
Checkbox bn= new Checkbox(tiquetten, tatn, br);
Les listes droulantes sont des composants trs apprcies dans les interfaces
utilisateur. Ils permettent de slectionner des lments dans une liste.
Lobjet Choice permet de lutilisateur de choisir une valeur unique parmi une
liste. La syntaxe est la suivante:
Choice maListe= new Choice();
maListe.addItem(Choix1);
maListe.addItem (Choix2);
...
maListe.addItem (Choixn);
Gestion des slections
Exemple:
Une application java qui cre une liste droulante de trois lments (ROUGE,
ROSE, BLEU). La couleur slectionne est applique larrire plan de la fentre.
import java.awt.*;
public class DemoChoice extends Frame {
String str; //str contiendra la couleur choisie
Choice choix=new Choice(); // Cration d'une liste de choix
DemoChoice(String titre){
super(titre);
choix.addItem("ROUGE"); //Cration du 1er lment de la liste
choix.addItem("ROSE"); //Cration du 2me lment de la liste
choix.addItem("BLEU"); //Cration du 3me lment de la liste
add(choix); // Affichage de la liste droulante }
public boolean action(Event e, Object arg){
//On redfinit la mthode action qui permet d'exploiter les vnements
str=(String)arg; // le contenu de l'objet arg contient le texte de l'lment
// slctionn dans la liste droulante
repaint(); // pour rafraichir la fentre
return(true); }
public void paint(Graphics g) {
if(str=="ROUGE")
setBackground(Color.red);
else
if(str=="ROSE")
setBackground(Color.pink);
else
if(str=="BLEU")
setBackground(Color.blue);
}
public static void main(String[] args) {
DemoChoice monChoix= new DemoChoice ("Couleur de l'arrire plan");
monChoix.setSize(400,400);
monChoix.setVisible(true);
}}
Les listes choix multiples
Une liste choix multiple permet dafficher une liste de choix dans un cadre. Elle
permet dafficher plusieurs lignes et la slection de plusieurs lments.
Une liste choix multiple sert en gnral grer les saisies de lutilisateur dans
une liste.
Pour grer une liste choix multiple, on doit faire appel la classe java.awt.List.
La classe List contient plusieurs constructeurs, le constructeur le plus intressant
est List(int i, boolean valeur). Le premier paramtre i dfinit le nombre de
lignes qui seront affiches, et la valeur indique si lon autorise la slection multiple
(true) ou non.
Une fois linstance cre, on ajoute les propositions avec addItem(String)
La classe List dispose dun grand nombre de fonctions pour grer et consulter les
informations mmorises.
List li= new List(nbLigne, multiSelect);
li.addItem(String s); // ajoute llment la fin de la liste
li.addItem(String s, int indice); // insre llment la position indice, le
premier lment de la liste a pour indice 0
li.deletItem(int indice); //supprime llment qui est la position indice
li.delItem(int indice1, int indice 2); //supprime les lments qui sont entre les
positions indice1 et indice 2
li.clear(); // efface compltement le contenu de la liste
li.countItems(); // retourne le nombre dlments de la liste
li.getItem(indice); // retourne une chaine de caractre qui le contenu de llment
dindice indice
li.select(); // slectionne llment dindice indice
li.setMultipleSelections(); // est un boolen qui retourne true si la slection
multiple est autorise, false sinon.
li.deselect(indice); // dslectionne llment dindice indice
li.getSelectedIndex(); // renvoie lindice de llment slectionn en cas de
slection simple. En absence de slection le rsultat est -1
li.getSelectedIndexes(); // renvoie un tableau de type int qui contient les indices
de tous les lments slectionns en cas de slection multiple.
li.getSelectedItem(); // sutilise dans le cas dune slection simple, renvoie une
chaine de caractres qui contient le texte de llment slectionn, ou null en
absence de slection
li.getSelectedItems(); // sutilise dans le cas dune slection multipe, renvoie un
tableau de strings qui contient les texte de tous les lments
slectionn,s ou null en absence de slection
Exemple:
Il sagit dcrire un programme qui crit une liste de 10 ligne qui autorise la
slection multiple. Il installe deux boutons pour ajouter et supprimer des
lments.
import java.awt.*;
class DemoList extends Frame {
List li=new List(10,true);
Button b1= new Button("Ajouter");
Button b2= new Button("Supprimer");
Button b3= new Button(Fermer);
DemoList(String titre){
super(titre);
FlowLayout fl= new FlowLayout();
setLayout(fl);
add(b1);
add(b2); add(b3);
li.addItem("Element 1");
li.addItem("Element 2");
li.addItem("Element 3");
li.addItem("Element 4");
add(li);
}
public boolean action(Event e, Object arg){
if(e.target==b1) // si le bouton b1 est press ("Ajouter)
li.addItem("Autre lment ajout");
else if (e.target==b2) {
int indice[]=li.getSelectedIndexes();
for(int i=0;i<indice.length;i++)
li.delItem(indice[i]);
}
else if (e.target==b3)
System.exit(0) ;
return true;
}
public static void main(String[] args) {
DemoList maListe= new DemoList ("Liste d'lments");
maListe.setSize(400,400);
maListe.setVisible(true);
}}
E. Les zones de saisie
Pour recueillir les saisies de lutilisateur dans une applet, le package awt propose la
classe TextField. Par dfinition, le champ de texte se limite une seule ligne. Il est
gnralement associ un bouton qui sert confirmer la saisie et transmettre
au programme les caractres taps.
return true;
}
}
Zones de textes pour la saisie multiligne
La classe TextField est limite la saisie dune seule ligne. Pour permettre la saisie
de plusieurs lignes, il faut recourir la classe java.awt.TextArea.
import java.applet.Applet;
import java.awt.*;
public class DemoTextArea extends Applet {
TextArea texte;
public void init(){
add(new Label("Tapez vos commentaire:"));
texte=new TextArea("Pas de commentaire",5,15);
add(texte);
}
}
3. Les gestionnaires de mise en page
Lorsquon place des composants dans une applet ou dans une fentre
graphique, leur emplacement lcran se fait de manire automatique et dune
faon variable
La taille de la fentre;
Cest la disposition par dfaut, celle qui sera utilis si lon ne choisit pas un autre
gestionnaire. Le principe est trs simple: tous les lments sont mis cte cte, de
gauche droite. Lorsquil ny a plus assez de place pour ajouter un lment, on
passe la ligne suivante. Chaque ligne est centre par dfaut.
import java.applet.*;
import java.awt.*;
GridLayout gl= new GridLayout(int ligne, int colonne, int h, int v);
/* Les deux derniers arguments spcifient lespacement horizontal et vertical
des composants */
Exemple: Affichage de lapplet suivante qui est compose de 4 boutons et une
liste de 5 lments. Ces composants sont disposs en trois colonnes
import java.applet.*;
import java.awt.*;
public class DemoGridLayout extends Applet {
List l= new List(1,false);
public void init(){
l.addItem("Premier");
l.addItem("Deuxime");
l.addItem("Troisime");
l.addItem("Quatrime");
l.addItem("Cinquime");
setLayout(new GridLayout(0,3,20,20));
//Mise en page grille de 3 colonnes, l'espacement horizontal et vertical
//des composants est fix 20 pixels.
add(new Button("Bouton 1")); // 1re ligne et 1re colonne
add(new Button("Bouton 2")); // 1re ligne et 2me colonne
add(l);
add(new Button("Bouton 3"));
add(new Button("Bouton 4"));
}}
Exercice
Utiliser le gestionnaire GridLayout (2,3) pour raliser lapplication graphique
suivante:
Panel: Conteneur qui na pas de fentre propre sert surtout ordonner les
contrles. La classe java.applet.Applet est drive de la classe Panel.
A. Le conteneur Panel
Cest un panneau qui sert essentiellement ranger les composants. La classe
Panel est trs simple, elle ne contient quun seul constructeur et une seule
mthode add()
Panel p= new Panel(); // dfinit un nouveau panneau .
add(p); //intgre le panneau p dans un autre conteneur (une applet par
exemple)
Un panneau peut lui-mme contenir dautres conteneur. Ainsi des panneaux
peuvent tre emboits.
Exemple: Utiliser dans une applet un panneau qui contient 3 boutons
import java.applet.*;
import java.awt.*;
public class DemoPanel extends Applet {
public void init() {
Panel p= new Panel();
Button b1= new Button("Premier");
Button b2= new Button("Deuxime");
Button b3= new Button("Troisime");
p.add(b1);
p.add(b2);
p.add(b3);
add(p);
}}
B. Le conteneur Frame
Exercice: Raliser une application graphique qui contient 4 boutons dans le 1er
panneau, 2 tiquettes dans le 2me panneau et 3 zones de texte en 3me panneau
comme ci-dessous:
import java.awt.*;
class Fpanel {
static public void main (String arg [ ]) {
Frame w = new Frame("Exemple de fenetre avec un Panel");
Panel p=new Panel();
p.setLayout(new FlowLayout ());
p.add(new Button(" Bouton 1"));
p.add(new Button("Bouton 2"));
p.add(new Button(" Bouton 3"));
p.add(new Button("Bouton 4"));
w.add("North",p);
Panel p2=new Panel();
p2.setLayout(new FlowLayout ());
p2.add(new Label("Etiq1"));
p2.add(new Label("Etiq2"));
w.add("Center",p2);
Panel p3=new Panel();
p3.setLayout(new FlowLayout ());
p3.add(new TextField("Zone1"));
p3.add(new TextField("Zone2"));
p3.add(new TextField("Zone3"));
w.add("South",p3);
w.show();
w.pack(); } }
5. Les vnements et les actions
Les interactions de l'utilisateur avec l'interface (par exemple cliquer sur la
souris, taper sur une touche du clavier, presser un bouton, ...) sont appels
vnements. On dit que lon traite un vnement lorsquon prend en compte
celui-ci et que lon excute des actions en consquence. La mthode qui traite
lvnement est galement appele gestionnaire dvnement.
En java, tout vnement possde une source. C' est dire l'objet lui ayant
donn naissance. On clique sur une fentre, la source est la fentre. On clique sur
un bouton, la source est le bouton. On clique sur case cocher, l' objet est la case
cocher. On va dans le menu Fichier, on choisit un sous-menu tel que enregistrez,
la source est le sous-menu enregistrez ou le sous-menu enregistrez sous.
Pour traiter un vnement en java, on associe l' objet source, un autre objet,
instanci partir d'une classe qui implmente une interface particulire. La
particularit de cette interface est qu'elle est prdfinie. On ne l'invente pas. En
plus, cette interface possde un ensemble de mthodes dont l'une d'elle permet
justement de traiter l' vnement en question.
Exercice:
I. Raliser lapplication graphique ci-dessous pour la saisie du nom, prnom et les
notes dun tudiant, et le calcul de sa moyenne.