titre.gif (1044 octets)

Applet Java 1.3.1

dsdem.gif (1088 octets)

Une applet est un appel depuis un document HTML à au moins une classe Java qui elle même fera appel à d'autres classes Applet de la bibliotèque fournie.

Une classe doit être écrite avec un traitement de texte (document.java) puis compilée - Mac : tirer le fichier sur l'icône du compilateur; PC : exécuter la commande javac document.java depuis le répertoir contenant Javac . Le document compilé portera le même nom que le fichier source mais avec l'extension .CLASS.Pour créer des classes, il faut avoir un compilateur, alors que les biblothèques sont fournies avec les navigateurs.

note : seuls les navigateurs reçents comprennent Java 1.3

Le but de ce document n'est pas de définir toutes les classes Java et toutes les possibilité de Java ( menu, traitement de fichiers, etc.) mais de donner quelques bases pour démarrer "en douceur".

les fonds

textes:

 

dessins

 

élements  de conrôle

 

Souris

Application dans une fenêtre

 

Voir un exemple avec boutons et gestion de la souris : le démineur

titre.gif (1044 octets)

 


dsdem.gif (1088 octets)

Introduction :

Pour créer une Applet, il faut un éditeur de texte (même rudimentaire). Il faut une compilateur et un peu de patience.

Le document initial doit avoir l'extention .java

Pour le compiler :

Sur mac: tirer l'icône du document xxx.java sur celle du compilateur est c'est déjà fini.

 

Pour Windows: faire appel aux commande dos, trouver le fichier dans lequel se trouve le compilateur

(par exemple : c:\Javadoc\jdk1.3.1\bin )

depuis cet endroit, s'il vous reste du temps, envoyer la commande suivant (il est préférable de mettre le document .java dans le bin, sinon il faut entrer son adresse complète et prier - puis eventuellement quand même mettre le document dans le bin...)

javac nom_doc.java

 

Après cette opération, il y deux possibilités:

a) Il y a quelque(s) erreur(s) de programmations (cas le plus fréquent) : corriger les premières erreurs (inutile de vouloir toutes les rechercher) et recommencer la tentative de compilation.

b) Il arrive parfois que le compilateur vous informe que tout c'est bien passé ( ce qui veut dire qu'il n'y pas d'erreur de syntaxe, mais pas que votre programme est juste ...). Dans ce cas vous trouverez un nouveau document nom_doc.class

note : pour actualiser une Applet dans un navigateur (sur PC) presser les touches : "Alt" et "F5" en même temps.

C'est ce fichier qui sera utile pour l'execution de votre programme. Mais ne jeter pas le .java trop vite, car il se peut que vous vouliez une fois faire une modification de votre programme.

 

Les fichiers que vous créez vont obligatoirement faire appel à d'autres classes déjà existante (fournie avec Java). Donc votre document doit avoir ce type de codes:

import java.applet.Applet;
import java.awt.*;
// contient les méthodes graphiqes
import D_autres.class; // si besoin est...

public class NOM_JUSTE extends java.applet.Applet // il faut ce qu'il faut
{
fonctions et instructions
}

   voir un exemple

variante 2 :

import java.applet.*;
import java.awt.*;
// contient les méthodes graphiqes
import D_autres.class; // si besoin est...

public class NOM_JUSTE extends Applet // plus simple
{
fonctions et instructions
}  

L'appel de l'Appet dans le document HTML est quelque chose comme :

<APPLET CODE="NOM_JUSTE.class" WIDTH="200" HEIGHT="300">
autoriser java sur votre navigateur
</APPLET>

note :    widht donne la largeur en pixels reservée pour l'affichage de l'Applet
              height donne la hauteur en pixels reservée pour l'affichage de l'Applet

si l'Applet ne se trouve pas dans le même dossier / répertoire que le document HTML, on doit fournir son adresse avec CODEBASE ="ici"

le texte entre les deux tags sera affiché si l'applet ne le peut pas..

 

Les classes auront la structure suivante:

public class D_autre {
           fonctions et instructions
}

titre.gif (1044 octets)

 


dsdem.gif (1088 octets)

Les opérateurs :

opérateurs arithmétiques

opérateurs logiques

opérateurs d'incrémentation

a=a+b

+=

a+=b

|

non

a++

postincrémentation

R = a* ++E

a=a-b

-=

a-=b

<

plus petit que...

a=a*b

*=

a*=b

>

plus grand que

++a

préincrémentation

R = a* E--

a=a/b

/=

a/=b

>=

plus grd ou égal

reste de la division

%=

a%=b

<=

plus ptt ou égal

a--

post décrément.

affectation conditionnelle

?=

a=(c<d)?e:f

a= e si c<d

sinon a=f

!=

différent

--a

prédécrément.

==

identique

   

&&

ET

   

||

OU

   
titre.gif (1044 octets)

 


dsdem.gif (1088 octets)

Les instructions :

instruction if

instruction  for

instruction  Switch

instruction while

if (condition==remplie)   {
          instruction_1 ;
          instruction_2
;
}
else   {  //
sinon (facultatif)
         instruction_3 ;
         instruction_4 ;

}

 

note : attention dans la condition il s'agit d'un opérateur logique donc ==

for (x=2;x<=7;x++ )    {            
            instruction_1 ;
}

for (var in objet)  {
/* accède séquenciellement à toutes les propriétés d'un objet*/
            instruction_1 ;
}

//for (;;) => boucle infinie

continue // interdit l'exécution
break // sort de la boucle

for (I=0;I<10;I++ )    {
         if (
I= =2) // saute l'inst. si I=2
                    continue;
         if
(I==5)// sort de la boucle
                     break;
         fonction_1();
}

Switch (variable_entière) {
    case 1':                  
// si variable==1
         instruction_1 ;
        break;

      case 2:                  // si variable==2
         instruction_2;
        
break;

     default:                  // si pas trouvé
         instruction_2;
        
break;

}

// suite du programme

while (test == false )   {
            instruction_1 ;
}

// while (1) => boucle infine

 

ou

do {            
       instruction_1 ;
}
while (I < 10);

 

  exemple exemple exemples (1 ou 2)

l'instruction return permet de renvoyer une valeur depuis une fonction

....

function circonference (rayon)  {          // fonction appellée
                rayon *= 6,28 ;
                return rayon// rayon contient la valeur de la circonférence
}

....// dans une autre fonction
                 X = 17,5;
                circonference
(X); // appel la fonction circonférence et passe la valeur de X comme rayon

 

titre.gif (1044 octets)

 


dsdem.gif (1088 octets)

Les objets :

Java est un langage orienté objet ( instructions à points) qui comprend une importante bibliothèque de "classes" (sous-programmes) qui permet d'avoir relativement peu d'instruction à connaître.

Chaque objet possède une ou plusieurs propriété (ou méthode). Pour créer un objet, il faut utiliser l'opérateur New.

 

par exemple: Une liste de personnes comprend autan d'objets "personne" qu'il y a d'employés:

function personne (nom, prenom,AVS,salaire)  {

this.nom=nom
this.prenom=nom
this.AVS=AVS
this.salaire=salaire

}

Cette fonction affecte 4 propriétés à un type d'objet "personne"

 

secrétaire = new personne ("Anne","Pahud",153465,4230) ceci crée un objet secrétaire du type personne et affecte automatiquement les valeurs des propriétés.

secrétaire.nom.value// renvoie la valeur "anne".   voir un exemple

titre.gif (1044 octets)

 


dsdem.gif (1088 octets)

Constructeurs

définition d'une classe avec ou sans passage de paramètres

(construction d'un objet "courant" avec surcharge du constructeur)

commentaires :

public class Courant {
       double
var1;
       double
var2;
      public
Courant () {
               attribution des valeurs par défaut
      }
       public
Courant(double t, double i)  {
                   var1 = t;
                   var2 = i;
       }
      static public double
CalculI() {
                   return
tension / impedance;
      }
}
nom de la classe + marque le début de la classe
déclare une variable double : var1
déclare une variable double : var2
défini une fonction sans paramètre : Courant()
instruction d'affectation de valeurs par défaut
ferme la fonction Courant()

défini une fonction avec paramètre -double: Courant(t,i)
initiale la valeur de la variable var1  à la valeur de t

ferme la fonction Courant(t,i)
défini la fonction de calcul : CalculI()

calcul la valeur à retourner
ferme la fonction CalculI()

ferme la classe Courant

Le programme appellant serait :

import java.applet.Applet;
import java.awt.*;
import
Courant;

public class Pour_voir extends java.applet.Applet // il faut ce qu'il faut ..

{
Courant Circuit1 = new Courant (); // définit un objet Courant (sans paramètre) de la classe Courant
double reponse1= Circuit1.CalculI(); // reçoit en retour la valeur 230/23 soit reponse1 contient le double 10
Courant Circuit2 = new Courant (111,37); // définit un objet Courant (avec paramètre) de la classe Courant
double reponse2 = Circuit2.CalculI(); // reçoit en retour la valeur 111/37 soit reponse2 contient le double 3
}

voir un exemple

titre.gif (1044 octets)

 


dsdem.gif (1088 octets)

couleur de fond:

pour modifier la couleur de fond:

   setBackground(Color.white)

pour placer une image :

   Image i;                                                           // image en fond

    i = getImage(getCodeBase(),"cetteimage.gif");

    g.drawImage(i,0,0,this);                                      // l'image à la taille réelle

 

voir un exemple

titre.gif (1044 octets)

 


dsdem.gif (1088 octets)

Les variables :

Les variables seront déclarées différemment si elle sont employées dans une Applet ou un script. Le nom d'une variable doit toujours commencer par une lettre (toutefois il peut contenir des chiffres, des $ ou des _ dans la site de son nom,

ex. c_est_mon_nom_24 est juste mais pas c'est mon nom).

Voici quelques types de variables :

nombres type codé plage  
entiers * byte 8 bits de -128 à 127  
short 16 bits de -32768 à 32767  
entiers int 32 bits de -231 à 231-1 int nombre_hexa = 0x6AF2
entiers long 64 bits de -263 à 263-1  
réels float simple précision (32 bits) de -1,40239846 . 10-45 à 3,4......1038 float f = 234,67f;
entiers double double précision (64 bits) de -4,9... . 10-324

à 1,7......10308

double var=135.678d;
  booléens 1 bit true = 0, false >0  
caractère char 16 bits Unicode un seul caractère char var1='i';
chaîne de caractères objet String     String var2="oui";
tableau type nom_va [ ]
type nom_va [ ] [ ]
1 dimension
2 dimensions
caract. ou nombre int variable3 [ ] ;
exemples :

int ceci_contient_un_entier;
String
Ceci_est_ une_chaine;
ceci_contient_un_entier = 123;
Ceci_est_ une_chaine = Integer.toString(ceci_contient_un_entier,10);

int montableau [ ] ; //tableau d'une dimension contenant des valeurs "entières"                                            (voir exemples)
String
montableau [ ] [ ]; //tableau à 2 dimensions contenant des valeurs "chaîne"                            (voir exemples)

conversion de type :

eval ()             // conversion numérique d'une chaîne - resultat = eval ("125.7")

parseInt()       // conversion en un entier d'une chaîne en utilisant une base - resultat_2 = parseInt ("125",8)

parseFloat()    // conversion en un réel d'une chaîne - resultat_3 = parseFloat ("125.7")

exemple de convertion d'une chaîne en un objet double :
objetDouble = Double.valueOf(variable_chaîne).doubleValue();                      (exemple)

exemple de convertion d'une chaîne en un objet entier :
objetEntier = Interger.parseInt(variabl_chaîne,10);                                         (exemple) // 10 exprime la base

exemple de convertion d'un entier en une chaîne :
nouvelchaîne = Integer.toString(variable_int,10);                                               (exemple)// 10 exprime la base

exemple de convertion d'un double en une chaîne :
nouvelchaîne = Double.toString(variable_double);                                             (exemple) ou  (exemple)

Durée de vie : la durée de vie d'une variable est celle de la partie de programme dans laquelle elle est déclarée :

1) si elle est déclarée dans une classe : elle contient la même valeur (si inchangée par le programme) durant toute l'utilisation de cette classe.
2) si elle est déclarée dans une fonction : elle contient la même valeur (si inchangée par une instruction) durant toute l'utilisation de cette fonction.
3) si elle est déclarée dans une boucle : elle contient la même valeur (si inchangée par une instruction) durant toute l'utilisation de cette boucle ( par exemple un compteur n'a pas besoin d'être défini dans la fonction).
4) si elle est déclarée dans une ligne d'instruction : elle contient la même valeur (si inchangée par l' instruction) durant toute l'utilisation de cette ligne ( dans ce cas, il s'agit surtout d'une erreur de programmation).

Donc des variables différentes de nom identique peuvent coexister sans problème dans une même classe ou une même fonction.

Déclarations des variables: pour déclarer une variable, il faut indiquer son type avant son nom (il existe quelques exeptions, mais il reste plus clair de quand même les déclarer par leur type)

exemples:

type nom_variable = valeur
long
nombre_long_en_octal = 0634;      // nombre entier exprimé en octal
double
Nombre64bits = 34.6788;
float
nombre32bits =123.56f; // Si l'on ne reprécise pas qu'il est float il y aura une erreur car Java suppose que le nombre avec virgule est en double
for (int
compteur = 0; compteur <10; compteur++)            // compteur n'existe que dans cette boucle
char
caract ;                                           // définit une variable contenant un caractère sans affectation de valeur
char
retour =' \r';                                   // définit une variable contenant un caractère avec affectation d'un code
char
tabulation  =' \u0009';                   //définit un caractère Unicode (avec JDK 1.3)
int
valeur1,valeur2;
string
Tableauchaine [ ];                     // tableau de chaînes                                                                                          (exemples des variables) tableau)
double 
tableau1et2 [ ] [ ];                   // les [] peuvent être placés avant ou après le nom de la variable      (exemples variables à 2 dimensions )

voir les conversions de types

titre.gif (1044 octets)

 


dsdem.gif (1088 octets)

 

Les textes :

Dans les Applet les textes sont des dessins de lettres. Nous avons besoin de la méthode drawString():

g.drawString("texte"ou string chaine,int X,int Y);

exemple :

import java.awt.*;

public class VOIRTEXTE extends java.applet.Applet  {
                public void paint (Graphics
g)  {

g.drawString("ouf, ça marche",10,20); // affiche le "texte" à 10 du bord G et à 20 du haut
}

}

titre.gif (1044 octets)

 


dsdem.gif (1088 octets)

Gestion des Fontes

constructeur (méthode de la classe java.awt.Font) de l'objet Font:

public Font (String nom, Font.style, int taille)

note : style => .BOLD, .ITALIC, . PLAIN

Font police12 = new Font ("Helvetica", Font.BOLD, 36); // initialise une fonte appellé Police12

g.setFont (police12); // affecte la fonte police12 à la méthode drawString()

voir un exemple

titre.gif (1044 octets)

 


dsdem.gif (1088 octets)

Gestion des Couleurs d'affichage

constructeur (méthode de la classe java.awt.Color) de l'objet Color

public Color (int r, int g, int b) // (valeur de 1 à 256 pour le rouge, vert, bleu)

public Color (float r, float g, float b) // (valeur de 0.0 à 1.0 pour le rouge, vert, bleu)

public Color (int rgb)  // le premier octet contient la valeur de la composante du bleu, le second le vert et le troisième le rouge

public Color (sting nom_couleur)   // par exemple : black, blue, cyan, darkGray, gray, lightGray, green, magenta, orange, pink, red, white, yellow

exemples :

import java.awt.*;
import java.applet.*;
public class
choixcouleur extends Applet    {

public void paint (Graphics g)   {

g.setFont (new Font ("Courier", Font.ITALIC, 10));      // choix de la police
g.setColor (Color.blue);                                                     // couleur d'affichage bleu
g.drawString("ça écrit en bleu",20,50);  // affiche le "texte" à 20 du bord G et à 50 du haut
g.setColor (new Color(0,0,255);                                       // couleur d'affichage bleu
g.drawString("ça écrit aussi en bleu",20,50);

}

}

voir un exemple

note : cette commande est aussi valable pour des lignes

titre.gif (1044 octets)

 


dsdem.gif (1088 octets)

Passage de paramètres

 

Avec Java on peut passer des paramètres depuis la document HTML à l'Applet Java.

document HTML

récupération sur l'Applet

<APPLET CODE ="nom.class" WIDHT="100" HEIGHT="100">

<PARAM NAME=nom1 VALUE="bonjour">

<PARAM NAME=nom2 VALUE="400">

navigateur incompatible

</APPLET>

voir un exemple simple ou complexe ( avec nombres)

String param1;

int param2;

public void init()

{

param1 = getParameter("nom1");

param2 = getParameter("nom2"); // chaîne de caractères

}

note: il est possible de mettre les param dans le même tag que celui qui appelle l'Applet.

titre.gif (1044 octets)

 


dsdem.gif (1088 octets)

Les commentaires :

Il est possible et même indispensable de documenter les classes que vous créez. Pour cela il y a plusieurs manières différentes:

  • /* commentaire sur
    plusieurs lignes */
  • début de l'instruction/* commentaire */ fin de l'instruction
titre.gif (1044 octets)

 


dsdem.gif (1088 octets)

Les graphiques

traçage d'une ligne :

méthodes de la classe java.awt.Graphics : Public absttract void drawLine (int x1, int y1, int x2, int y2)

exemples d'instuctions dans une fonction :

public void paint (Graphics g)  {
      int
plus = 2;
      g.setColor (Color.red); // couleur d'affichage rouge
      g.drawLine(10,10,10+plus,10+plus); //trace une ligne du point (10 de G et 10 du H) au point (12,12)
}

voir un exemple

titre.gif (1044 octets)

 


dsdem.gif (1088 octets)

traçage d'une suite de ligne:

méthode de la classe java.awt.Graphics

public absttract void drawPolyline (int xpoints[], int ypoints[], int nombre_de_point)

note : mettre d'abord les coordonnée (x,y) dans des tableaux

g.drawPolyline (tableau_x, tableau_y,10); // trace 10 traits qui ont chacun comme origine la fin du précédent.

voir un exemple

traçage d'un rectangle

méthodes de la classe java.awt.Graphics : Public absttract void drawRect (int x1, int y1, int largeur, int hauteur)

exemples d'instuctions dans une fonction :

int base = 10;
g.setColor (Color.yellow); // couleur d'affichage jaune
g.drawRect(base,base,base*3,base*3); //trace un carré de 20/20 dont le coin sup. G est à (10,10)

voir un exemple

traçage d'un rectangle plein

méthodes de la classe java.awt.Graphics : Public absttract void fillRect (int x1, int y1, int largeur, int hauteur)

exemples d'instuctions dans une fonction :

int base = 10;
g.setColor (Color.yellow); // couleur d'affichage jaune
g.fillRect(base,base,base*3,base*3); //trace un carré de 20/20 dont le coin sup. G est à (10,10)

voir un exemple

traçage d'un rectangle à coins arondis

méthodes de la classe java.awt.Graphics

Public absttract void drawRoundRect (int x1, int y1, int largeur, int hauteur, int diamelipshori, int diamelipseverti)

exemple d'instuction dans une fonction :

g.drawRoundRect(0,0,27,80,5,5);

voir un exemple

traçage d'un rectangle plein à coins arondis

méthodes de la classe java.awt.Graphics

Public absttract void drawRoundRect (int x1, int y1, int largeur, int hauteur, int diamelipshori, int diamelipseverti)

exemple d'instuction dans une fonction :

g.setColor (Color.blue); // couleur d'affichage bleu
g.fillRoundRect(0,0,27,80,5,5);

voir un exemple

traçage d'un rectangle en relief

méthodes de la classe java.awt.Graphics

Public absttract void 3DRect (int x1, int y1, int largeur, int hauteur, boolean relevé)

exemples d'instuctions dans une fonction :

boolean presse = false;
g.draw3DRect(10,90,50,40, presse);// trace un bouton enfonçé

voir un exemple

traçage d'un rectangle plein en relief

méthodes de la classe java.awt.Graphics

Public absttract void fill3DRect (int x1, int y1, int largeur, int hauteur, boolean relevé)

exemples d'instuctions dans une fonction :

g.setColor (Color.pink); //couleur de remplissage
g.fill3DRect(10,90,50,40, true); // trace un bouton relevé

voir un exemple

titre.gif (1044 octets)

 


dsdem.gif (1088 octets)

Effacer une zone

méthodes de la classe java.awt.Graphics

Public absttract void clearRect (int x1, int y1, int largeur, int hauteur)

exemples d'instuctions dans une fonction :

g.clearRect(10,90,50,40); // trace un bouton relevé

voir un exemple

Déplacer une zone

méthodes de la classe java.awt.Graphics

Public absttract void copyArea (int x1, int y1, int largeur, int hauteur, int nouveau_X, int nouveau_Y)

exemples d'instuctions dans une fonction :

g.copyArea(10,90,50,40, 100, 120); // trace un bouton relevé

voir un exemple

titre.gif (1044 octets)

 


dsdem.gif (1088 octets)

Traçage de Polygone ou de courbe variable

méthode de la classe java.awt.Graphics

public absttract void drawPolygon (int xpoints[], int ypoints[], int nombre_de_point)

note : mettre d'abord les coordonnée (x,y) dans des tableaux

g.drawPolygon (tableau_x, tableau_y,100); // trace un trait qui relie les 100 points contenu dans les tableaux X et Y et retour au 1er point...

public void drawPolygon (Polygon objet_polygone)

voir un exemple

Traçage de Polygone plein

méthode de la classe java.awt.Graphics

public absttract void fillPolygon (int xpoints[], int ypoints[], int nombre_de_point)

note : mettre d'abord les coordonnée (x,y) dans des tableaux

g.fillPolygon (tableau_x, tableau_y,10); // trace un trait qui relie les 10 points contenu dans les tableaux X et Y et retour au 1er point...

voir un exemple

titre.gif (1044 octets)

 


dsdem.gif (1088 octets)

traçage d'un arc

exemple d'instuction dans une fonction :

g.drawArc (val_int_x,val_int_y, int_largeur, int_hauteur, int_debut_angle, int_angle_en_plus);//angle en degré

traçage d'un arc de cercle plein

exemple d'instuction dans une fonction :

g.setColor(Color.magenta);
g.fillArc (val_int_x,val_int_y, int_largeur, int_hauteur, int_debut_angle, int_angle_en_plus); //angle en degré

traçage d'un oval

exemple d'instuction dans une fonction :

g.drawOval (int_sup_GaucheX,int_sup_GaucheY, int_largeur, int_hauteur, ); //trace l'oval dans le rectangle ainsi défini

traçage d'un oval plein

exemple d'instuction dans une fonction :

g.setColor(Color.cyan);
g.fillOval (int_sup_GaucheX,int_sup_GaucheY, int_largeur, int_hauteur, ); // trace l'oval dans le rectangle ainsi défini

titre.gif (1044 octets)

 


dsdem.gif (1088 octets)

rafraîchissement du gaphique

Pour faire opération, il faut faire un nouvel appel à la fonction paint() avec un appel repaint():

exemple:
import java.awt.*; // contient les méthodes graphiqes
import java.applet.*;

public class affiche extends Applet    {

fonctions et instructions

public void XYZ() {
   instructions...
   repaint();
}

public void paint (graphics g) {
  
g. drawSting(blut, nouvel_x, nouvel_y);
   instructions...
}

 }

  voir un exemple

titre.gif (1044 octets)

 


dsdem.gif (1088 octets)

Gestion de la souris

bouton de gauche de la souris enfoncé

constructeur : public abstract void mousePressed (MouseEvent evt) Interface : MouseListener

exemple :
import java.awt.*;
import java.awt.event.*;   /*
ou
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent; */

Public class testsouris extends java.applet.Applet implements MouseListener    {

initialisations et instructions

public void mousePressed (MouseEvent evt)// activé par l'appui sur le bouton de la souris    {
   AbscisseX=evt.getX();//mémorise le point x dans une variable AbscisseX
   OrdonneeY=evt.getY(); //mémorise le point y dans une variable OrdonneeY
   instructions...

}

suite... et fin
}

  voir un exemple

bouton de gauche de la souris relâché

constructeur : public abstract void mouseReleased (MouseEvent evt) Interface : MouseListener

exemple :
import java.awt.*;
import java.awt.event.*;

Public class testsouris extends java.applet.Applet implements MouseListener    {

initialisations et instructions

public void mouseReleased (MouseEvent evt)// activé par le lâché du  bouton de la souris    {
   AbscisseX=evt.getX();//mémorise le point x dans une variable AbscisseX
   OrdonneeY=evt.getY(); //mémorise le point y dans une variable OrdonneeY
   instructions...

}

suite... et fin
}

  voir un exemple

la souris entre dans la zone graphique

constructeur : public abstract void mouseEntered (MouseEvent evt) Interface : MouseListener

exemple :
import java.awt.*;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;

Public class testsouris extends java.applet.Applet implements MouseListener    {

initialisations et instructions

public void mouseEntered (MouseEvent evt)// activé par l'entrée de la souris dans la zone graphique   
   instructions...

}

suite... et fin
}

  voir un exemple

note: il est conseillé de la déclarer pour implémeneter complétement l'interface MouseListener, même si cette fonction n'a aucune instruction. [public void mouseEntered (MouseEvent evt) {}]

 

la souris sort de la zone graphique

constructeur : public abstract void mouseExited (MouseEvent evt) Interface : MouseListener

exemple :

mport java.awt.*;
import java.awt.event.*;

Public class testsouris extends java.applet.Applet implements MouseListener    {

initialisations et instructions

public void mouseExited(MouseEvent evt)// activé par la sortie  de la souris de la zone graphique   
   instructions...

}

suite... et fin
}

  voir un exemple

note: il est conseillé de la déclarer pour implémenter complétement l'interface MouseListener, même si cette fonction n'a aucune instruction. [public void mouseEnxited (MouseEvent evt) {}]

la souris se déplace

constructeur : public abstract void mouseMoved (MouseEvent evt) Interface : MouseMotionListener

exemple :

import java.awt.*;
import java.awt.event.*;

Public class testsouris extends java.applet.Applet implements MouseListener    {

initialisations et instructions

public void mouseMoved (MouseEvent evt)// activé par le déplacement  de la souris (sans presser)
   instructions...

}

suite... et fin
}

  voir un exemple

note: il est conseillé de la déclarer pour implémenter complétement l'interface MouseMotionListener, même si cette fonction n'a aucune instruction
[ public void mouseMoved (MouseEvent evt) {}]

 

la souris se déplace bouton enfoncé

constructeur : public abstract void mouseDragged (MouseEvent evt) Interface : MouseMotionListener

exemple :

import java.awt.*;
import java.awt.event.*;

Public class testsouris extends java.applet.Applet implements MouseListener    {

initialisations et instructions

public void mouseDragged (MouseEvent evt)      { // activé par le décplacement de la souris bouton enfoncé
abscisseX [compteur]= evt.getX();
abscisseY[compteur]= evt.getY();
compteur++;
instructions...
}

suite... et fin
}

titre.gif (1044 octets)

 


dsdem.gif (1088 octets)

constructeurs ( classe java.awt.Label) de l'objet Label

public Label ( )
public Label (String chaîne _à_afficher)
public Label ( String chaîne _à_afficher, int align)

note : align => Label.LEFT, Label.CENTER, Label.Right

méthode de la classe Label :

Label.setAlignment () -> (int) définit la valeur de l'alignement : 0=LEFT, 1= CENTER, 2=RIGHT
Label.getAlignment () -> (int) renvoie la valeur de l'alignement : 0=LEFT, 1= CENTER, 2=RIGHT
                                                                                    exemple : variable = Texte1.getAlignment();
Label.setText () -> (String) définit le texte de l'étiquette
Label.getText () -> (String) renvoie le texte de l'étiquette
                                                                                    exemple : Chaîne$ = Texte1.getText(); / /renvoi le texte contenu dans l'étiquette 'Texte1'

Label texte1 = new Label ("ceci est un texte écrit sur une ligne");

public void init()   {
           add (
texte1);
}

voir un exemple d'utilisation avec Choice
voir exemple d'utilisation avec  TextField
voir exemple de positionnement

titre.gif (1044 octets)

 


dsdem.gif (1088 octets)

constructeurs ( classe java.awt.TextField) de l'objet TextField (Champ texte)

public TextField ()
public TextField (int nombre_de caractères)
public TextField ( String chaîne _à_afficher)
public TextField (String chaîne _à_afficher, int nombre_de caractères,  )

méthodes de la classe TextField :

TextField.echoCharIsSet(); -> (boolean) true si le texte est caché sinon false
                                                                                    exemple : variable_booleen = TextField.echoCharIsSet();
TextField.getColumns(); -> (int) renvoie le nombre de caractère du champ
                                                                                    exemple : variable_int =TextField.getColumns();
TextField.setColumns(); -> (int) impose le nombre de caractère du champ
TextField.getMinimumSize () -> (objet Dimension) renvoie la taille minimale pour le texte du champ
TextField.getMinimumSize (int) -> (objet Dimension) renvoie la taille minimale pour le le nombre de caractères indiqué du champ
TextField.getPreferredSize () -> (objet Dimension) renvoie la taille optimale pour le texte du champ
TextField.getPreferredSize (int)
TextField.getEchoChar () -> (char) renvoie le caractère de masquage
TextField.setEchoChar (char caractère_de_masquage) -> (char)défini le caractère de masquage
                                                                                    exemple : TextField.setEchoChar ('*');
TextField.paramString () -> (String) renvoie le texte du champ
TextField..getText() -> (String) renvoie le texte du champ
                                                                                     exemple : if (TextField.getText().equals("blut"));
TextField.setText () -> (String) modifie le texte du champ

TextField.addActionListener (ActionListener) -> met en place la gestioin des événements liés à ce contrôle
                                            exemple :   TextField.addActionListener (this)
TextField.removeItemListener (ItemListener) -> suspend  la gestioin des événements liés à ce contrôle

exemple :

TextField Champ1 = new TextField ("ceci est un texte contenu dans un champ",10);

public void init()  {
      add (
Champ1);
}

voir exemples

titre.gif (1044 octets)

 


dsdem.gif (1088 octets)

constructeurs ( classe java.awt.TextFArea) de l'objet TextArea (Zone de texte)

public TextArea (int nombre_de_ligne, int nombre_de_colonnes)

public TextArea ( String chaîne _à_afficher)

public TextArea (String chaîne _à_afficher, int nombre_de_ligne, int nombre_de_colonnes)

méthode de la classe TextArea :

Zone1.getRows () -> (int) renvoie le nombre de ligne de la zone
                                                                                     exemple : variable_entière = Zone1.getRows ();
Zone1.getColumns () -> (int) renvoie le nombre de colonnes de la zone
                                                                                     exemple : variable_int = Zone1.getColumns();
Zone1.insert (String chaîne, int position) -> insert la 'chaîne' dans la zone à 'position'
Zone1.getMinimumSize () -> (objet Dimension) renvoie la taille optimale pour le texte de la zone
                                                                                    exemple : variable_String = Integger.toString(Zone1.getMinimumSize().height,10);
Zone1.getPreferredSize () -> (objet Dimension) renvoie la taille optimale pour le texte du champ
Zone1.paramString () -> (String) renvoie la valeur de la zone text
Zone1.getText () -> (String) renvoie le texte du champ
Zone1.replaceRange (String chaîne, int départ, int fin) -> (String) modifie le texte du champ par 'chaîne' de 'début' à 'fin'

exemple :

TextArea Zone1 = new TextArea ("ceci est un texte contenu dans Zone1", 4, 30 );
public void init()  {
    add (
Zone1);    
}

voir exemple

titre.gif (1044 octets)

 


dsdem.gif (1088 octets)

constructeurs ( classe java.awt.Checkbox) de l'objet Checkbox (Case à cocher)

public Checkbox ()
public Checkbox (String texte _à_afficher, Checkboxgroup nom_du_groupe, Boolean etat)
public Checkbox (String texte _à_afficher,, Boolean etat, Checkboxgroup nom_du_groupe)
public Checkbox ( String texte _à_afficher)
public Checkbox ( String texte _à_afficher, Boolean état)

note : état =>true = coché, false = décoché

 

méthodes de la classe Checkbox :

variante.setLabel (String étiquette) -> (String) défini l'étiquette de la case à cocher
variante.getLabel () -> (String) renvoie l'étiquette de la case à cocher
                                                                                    exemple : variable_Chaîne = variante.getLabel (); // retourne '1er texte à choix'
variante.getSelected Object () -> (String) impose le texte sélectionné
variante.setSelected Object () -> (String) donne le texte sélectionné
variante.setState (boolean état) -> (boolean) défini l'état true (coché) ou false (décoché)
variante.getState () -> (boolean) renvoie l'état true (coché) ou false (décoché)
                                                                                    exemple : variable_boolean = variante.getState();
variante.addItemListener (ItemListener) -> met en place la gestioin des événements liés à ce contrôle
                                            exemple :   .variante.addItemListener (this)
variante.removeItemListener (ItemListener) -> suspend  la gestioin des événements liés à ce contrôle
variante.processEvent (AWTEvent) -> reroute un événement
variante.processItemEvent (ItemEvent) -> reroute un événement
variante.setCheckboxGroup (CheckboxGroupe) -> impose l'appartenance à un  groupe
variante.getCheckboxGroup (CheckboxGroupe) -> donne  l'appartenance à un  groupe

événements cases à cocher
exemple :

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class
reblut extends Applet implements ItemListener    {

Label texte1 = new Label ("voulez-vous ce bouton");
Label
texte2 = new Label ("ou peut-être cbouton");
Checkbox
variante1 = new Checkbox ("1er texte à choix");
Checkbox
variante2 = new Checkbox ("2ème texte à choix");
public void init()   {

add (texte1);
add (
variante1);
add(
texte2);
add (
variante2);
variante1.addItemListener(this);   //cette méthode capture les événements de la case à cocher
variante2.addItemListener(this);

}
public void itemStateChanged(ItemEvent
e)   {  // activée à chaque changement d'une case à cocher

traitement;}

suite et fin
}

voir exemples

titre.gif (1044 octets)

 


dsdem.gif (1088 octets)

constructeurs ( classe java.awt.CheckboxGroup) de l'objet CheckboxGroup (Case à cocher)

public CheckboxGroup ()

méthodes de la classe Checkbox :

groupe1.getCurrent () -> donne la case cochée
groupe1.setCurrent (Checkbox nom) -> impose la case cochée
groupe1.setSelectedCheckbox (Checkbox nom) -> (objet) sélectionne un objet du groupe
groupe1.getSelectedCheckbox () -> (String) renvoie l'objet sélectionné
                                            exemple : variable_Chaîne = groupe1.getSelectedCheckbox().getLabel() // retourne le texte sélectionné dans groupe1
String.toString () -> renvoie une chaîne qui représente les valeurs du groupe d'option.

exemple : événements groupes de cases à cocher
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class
reblut extends Applet implements ItemListener    {

Label texte1 = new Label ("voulez-vous cette case");
Label
texte2 = new Label ("ou peut-être celle-ci");
CheckboxGroup
groupe1 = new CheckboxGroup ();
Checkbox
variante1 = new Checkbox ("1er texte à choix", groupe1, false);
Checkbox
variante2 = new Checkbox ("2eme texte à choix", groupe1, true);

public void init()   {

add (texte1);
add (
variante1);
add(
texte2);
add (
variante2);
variante1.addItemListener(this);    //cette méthode capture les événements de la case à cocher
variante2.addItemListener(this);

}
public void itemStateChanged(ItemEvent
evt)    {   // activée à chaque changement d'une case à cocher
            
traitement;      }

suite et fin
}

voir exemples

titre.gif (1044 octets)

 


dsdem.gif (1088 octets)

constructeurs ( classe java.awt.Choice) de l'objet Choice (Liste déroulante)

public Choice ()
public Choice (String)

méthode de la classe Choice :

Choice.addItem (String) -> ajoute une entrée dans la liste
                                            exemple : Liste1.addItem ("mon premier choix");
                                                          : Liste1.addItem ("mon second choix");
Choice.getItemCount() -> (int) renvoie le nombre d'entrée de la liste
                                            exemple : variable_Entière= Liste1.CountItems();
Choice.getItem (int numéro_de_ligne-1) -> (String) renvoie la chaîne de la ligne (commance à 0)
Choice.getSelectedItem () -> (String) renvoie la chaîne sélectionnée.
Choice.getSelectedIndex () -> (int) renvoie le numéro de la ligne -1 sélectionnée.
Choice.select ( int numéro_de_ligne-1 ) -> Sélectionne la ligne +1
Choice.select (String chaîne) -> Sélectionne la ligne  .
Choice.remove ( int numéro_de_ligne-1 ) -> Supprime une ligne
Choice.removeAll ( ) -> supprime tous le schoix
Choice.insert (String nouveau,  int numéro_de_ligne-1 ) -> insert  la ligne +1 .
Choice.addItemListener (ItemListener) -> met en place la gestioin des événements liés à ce contrôle
                                            exemple :   .Choice.addItemListener (this)
Choice.removeItemListener (ItemListener) -> suspend  la gestioin des événements liés à ce contrôle
Choice.eventEnabled (AWTEvent) -> (boolean) vérifie  l'activation d'un  événement
Choice.processEvent (AWTEvent) -> reroute un événement
Choice.processItemEvent (ItemEvent) -> reroute un événement

événement Liste déroulante (Choice)
 

exemple :

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class
reblut extends Applet implements ItemListener      {

Label texte1 = new Label ("voulez-vous cette ceci");
Choice
choix = new Choice ();
public void init()    {

add (texte1);
add (
choix);
choix.addItem("
choix 1");
choix.addItem("
choix 2");
choix.addItemListener(this);                             //
cette méthode capture les événements de la liste

}
public void itemStateChanged(ItemEvent evt)  {           //
activée à chaque changement de la liste

String choisi = evt.Item();
suite;

}
suite et fin

}

voir un exemple

titre.gif (1044 octets)

 


dsdem.gif (1088 octets)

constructeurs ( classe java.awt.List) de l'objet Liste (Liste déroulante)

public List ()
public List (int nombre_de_ligne_visible)
public List (boolean selection_multiple)
public List (int nombre_de_ligne_visible, boolean selection_multiple)

note : boolean selection_multiple => true = plusieurs sélections possible, false = une seule sélection

méthodes de la classe List :

Liste1.addItem (String texte) -> ajoute une entrée dans la liste
                                            exemple : Liste1.addItem ("mon premier choix");
                                                            Liste1.addItem ("mon second choix");
Liste1.addItem (String , int) -> ajoute une entrée dans la liste à une ligne donnée
Liste1.CountItems () -> (int) renvoie le nombre d'entrée de la liste
                                            exemple : variable_Entière =Liste1.CountItems();
Liste1.allowsMultipleSelections () -> (boolean) renvoie true si la sélection multiple est possible
Liste1.clear () ->supprime les entrées définies dans la zone de liste
Liste1.delItem (int position) -> supprime l'entrée position numéro 'position'
Liste1.delItems (int de, int à) -> supprime les entrées de position numéro 'de' à position numéro 'à'
                                            exemple : Liste1.delItems(2,5);
Liste1.getItem (int position) -> (String) renvoie l'option de la ligne position
Liste1.getItem ( ) ->   (String []) renvoi un tableau String des options
Liste1.getItemCount () -> (int) renvoie le nombre d'option
Liste1.deselect (int position) ->désélectionne l'entrée à la position numéro 'position'
Liste1.getMinimumSize () -> (dimension) propose une taille minimum
Liste1
.getMinimsSize (int) -> (dimension) donne la taille minimum
Liste1.getPreferredSize () -> (dimension) propose une taille
Liste1.getRows () -> (int) renvoie le nombre d'entrées de la liste
Liste1.getSelectedIndexes ( ) -> (int []) renvoie les valeur des positions des options sélectionnées
Liste1.getSelectedIndex ( ) -> (int) renvoie la valeur de la position de l'entrée sélectionnée
Liste1.getSelectedItem ( ) -> (String) renvoie la chaîne de l'entrée sélectionnée
Liste1.getSelectedItems ( ) -> (String []) renvoie dans un tableau les chaînes des entrées sélectionnée
Liste1.setMultipleSelections (boolean multple ) -> autorise la sélection multiple si 'multiple' vaut true
Liste1.setMultipleMode (boolean multple ) -> autorise la sélection multiple si 'multiple' vaut true
Liste1.isMultipleMode () -> (boolean) renvoie true si la selection multiple est possible
Liste1.isIndexSelected (int ) -> (boolean) renvoie true si l'index est sélectionné
Liste1.isSelected (int position ) -> (boolean) renvoie true si l'entrée de la 'position' est sélectionnée
Liste1.Select (int position ) -> sélectionne l'entrée 'position'
Liste1.makeVisible (int) -> rend visible cette option
Liste1.remove (int) -> supprime l'option désignée
Liste1.remove (String) -> supprime l'option désignée
Liste1.removeAll () -> supprime toutes les options de la liste
Liste1.replaceItem (String) -> remplace une otpion
Liste1.addActionListener ( ActionListener ) -> prise en charge des événements
Liste1.removeActionListener (ActionListener) -> annule la prise en charge des événements
Liste1.addItemListener ( ItemListener ) -> prise en charge des événements
Liste1.removeItemListener (ItemListener) -> annule la prise en charge des événements
Liste1.eventEnabled (AWTEvent) -> contrôle l'activation d'un événements
Liste1.processActionEvent (ActionEvent) -> reroute l'ActionEvent
Liste1.processEvent (Event) -> reroute l'Event
Liste1.processItemEvent (itemEvent) -> reroute l'ActionEvent

exemple d'événements Liste déroulante

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

public class reblut extends Applet implements ActionListener    {

Label texte1 = new Label ("voulez-vous cette ceci");
List
Liste = new List (2,true);
public void init()   {

add (texte1);
add (
Liste);
Liste.addItem("choix 1");
Liste.addItem("choix 2");
Liste.addActionListener(this);

}
public void actionPerformed(ActionEvent evt)    {

String choisi = Liste.getSelectedItems();
suite;

}
suite et fin

}

voir exemples

titre.gif (1044 octets)

 


dsdem.gif (1088 octets)

constructeurs ( classe java.awt.Button) de l'objet Button (Bouton)

public Button()
public Button (String Nom_de_l'étiquette_dans_le_bouton)

 

méthode de la classe Button :

Bouton.setLabel (String nom_de_l'étiquette) -> (String) modifie la chaîne dans le bouton
Bouton.getLabel () -> (String) renvoie la chaîne du bouton
                                            exemple : variable_Chaîne = groupe1.getCurrent().getLabel() // retourne le texte sélectionné dans groupe1
Bouton.toString () -> renvoie une chaîne qui représente les valeurs du groupe d'option.
Bouton.addActionListener (ActionListener) -> active la gestion des évenements
Bouton.removeActionListener (ActionListener) -> supprime la gestion des évenements
Bouton.eventEnabled (AWTEvent) -> (boolean) indique si un événement est permis
Bouton.getActionCommand () -> (String) renvoie une chaîne qui représente le nom de la commande.
Bouton.setActionCommand (String) -> (String) définit  une chaîne qui représente le nom de la commande
Bouton.processActionEvent (ActionEvent) -> reroute un évenement
Bouton.processEvent (AWTEvent) -> reroute un évenement

événement bouton de commande

exemple :

import java.awt.*;
import java.awt.event.*;
public class
Bouton extends Applet implements ActionListener   {

Button bouton1 = new Button ("texte1");
Button
bouton2 = new Button ("non");
public void init()  {

add (bouton1);
add (
bouton2);
bouton1.addActionListener(this); bouton1.setActionCommand("texte1"); bouton2.addActionListener(this); bouton2.setActionCommand("non");

}
public void actionPerformed(ActionEvent evt)    {
              if (evt.getActionCommand().equals("
texte1"))
                     //traitement
}
//
suite programme

}

voir exemples

Introduction aux applications dans des fenêtres:

Pour utiliser Java non pas dans le navigateur, mais dans une fenêtre qui resemble aux habituelles que l'on trouve dans les mondes Windows, Solaris ou même dans le paradis Macintosh, il faut utiliser une classe dérivée de la classe Frame (java.awt.frame).

donc vous aurez les codes suivant à entrer :

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class
Fen11 extends Frame implement WindowListener    {         // constructeur

// voir gestion de la fenêtre
public static void main (String args[ ]) {                                               //
procédure principale

Fen11 Fenster=new Fen11();                                                    // fenêtre sans titre - Untitled
Fenster.show();                                                                         //
affiche l'objet fenêtre
Fenster.addWindowListener(Fenster);
...

}

}

Gestion de la fenêtre

 

public class Fen11 extends Frame implements WindowListener    {   // constructeur

public Fen11 ()    {

setSize(240,300);

}
public void windowClosing (WindowEvent event)  {    //
gestion de l'évenement case de fermeture

dispose();                                                            // ferme la fenêtre

}
public void windowClosed (WindowEvent event) {
}
public void windowDeiconifield (WindowEvent event) {
}
public void windowActivated (WindowEvent event) {
}
public void windowDeactivated (WindowEvent event) {
}
public void windowOpoened (WindowEvent event) {
}

}

méthode de la classe Frame :

Frame.dispose () -> libère les resources utilisée par l'oblet frame
Frame.getIconImage () -> renvoie une image (l'icône de l'application)
Frame.setIconImage (Image image_icone) -> definit l'icône de l'application
Frame.getTitle () -> renvoie le titre (dans la barre de titre)
Frame.setTitle () -> définit le titre (dans la barre de titre)
                                                                          Fenster.setTitle ("super blabla");
Frame.isResizable () -> renvoie true si la fenêtre peut être redimensionnée
Frame.setResizable (boolean redim) -> redimensionnable si redim=true
                                                                         Fenster.setResizable (false);
Frame.Component.setCursor (Image image_curseur) -> definit l'apparence du curseur
Frame.setIconImage (Image image_icone) -> definit l'icône de l'application

titre.gif (1044 octets)

 


dsdem.gif (1088 octets)

ajouter des menus c'est facile !

Ce sera plus simple avec un exemple.

import java.awt.*;
import java.awt.event.*;
import java.awt.event.MouseListener;

import java.awt.event.MouseEvent;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Menu_Frame extends java.applet.Applet     {

public void init ()  {

Frame fenster = new Menu_fenster ();
fenster.show();
}

}
class
Menu_fenster extends Frame implements ActionListener, MouseListener, MouseMotionListener     {

int couleur;
checkboxMenuItem C1;// 1ère comande du menu couleur
checkboxMenuItem C2;
public Menu_fenster ()  {

set Title("titre de la fenêtre");
MenuBar
barre1 = new Menubar();
Menu
menFich = new Menu ("&Fichier"); // défini un titre de menu :Fichier
Menu menCou = new Menu("&Couleur"); // défini un titre de menu : Couleur
barre1.add (menFich);                         // met le titre dans la barre
barre1.add (menCou);                            //met le titre dans la barre
MenuItem F1 = new MenuItem ("&Quitter") // définit une commande
C1 = new checkboxMenuItem ("&Noir")         // définit une commande
C2 = new checkboxMenuItem ("&Rouge")      // définit une commande
menFich.add (F1);                                               // met la commande dans le menu
F1.addActionListener (this);
F1.setActionCommand ("&Quitter);
menFich.add (C1);                                               // met la commande dans le menu
C1.addActionListener (this);
C1.setActionCommand ("&Noir);
menuCou.add (C2);                                            // met la commande dans le menu
C2.addActionListener (this);
C2.setActionCommand ("&Rouge);
setMenuBar (barre1);
addMouseListener (
this);
addMouseMotionListener(this);
resize(250,300);
C1.setState (true);                                              // couleur noir par défaut

}

}

Gerer les commandes passées par un menu

Ce sera plus simple avec un exemple en rapport avec l'exemple précédent:

import java.awt.*;
import java.awt.event.*;
import java.awt.event.MouseListener
import java.awt.event.MouseEvent;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class
Fenetre extends Frame implements WindowListener,ActionListener,MouseListener,MouseMotionListener     {

// début comme ci-dessus ....

public void actionPerformed (ActionEvent evt)  {                                   // événement liés au menu

if (evt.getActionCommand().equals("&Quitter"))

dispose ();

if (evt.getActionCommand().equals("&Noir"))   {

couleur = 1;
C1.setState(true);
C2.setState(false);
}

if (evt.getActionCommand().equals("&Rouge"))    {

couleur = 2;
C2.setState(true);
C1.setState(false);
}

}

}

 

titre.gif (1044 octets)

 


dsdem.gif (1088 octets)