Une application Java est un programme de gestion de données comme tant d'autre. Elle doit pouvoir faire appel à d'autres classes 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 le quit de dévelloppemet.
Pour lancer l'application, il s'uffit de faire un double clic sur son icône ( éventuellement mettre à jour l'Autoexe).
textes:
- inscrire du texte ( dessiner du texte)
- passage de paramètres
- commentaires
dessins
- dessine des lignes :
- formes:
- dessine des polygones (courbes - sinus)
- divers - oval, arc -(exemples)
- rafraîchissement du graphique
création de conrôles
- Etiquettes - texte sur une ligne - (Label)
- Champs texte - un rectangle pour entrer un texte - (TextField)
- zone de texte - idem champ texte mais sur plusieurs lignes - (TextArea)
- cases à cocher - bouton radio - (Checkbox)
- boutons d'option - bouton radio mais un seul actif par groupe - (CheckboxGroup)
- Listes déroulantes - choix d'une option parmis plusieurs dont une seule est visible "au repos" (Choice)
- zones de listes -choix d'optio
- ns parmis plusieurs dont plusieurs sont visibles "au repos" (List)
- Boutons de commande - (Button)
gestion des événements de contrôles
- case à cocher - sélection de boutons radio
- bouton d'option - sélection d'un bouton radio
- liste déroulante - sélection d'une option dans une liste dont seul la première option est visible
- Zone de listes - sélection d'options dans une liste dont plusieurs options sont visibles
- bouton de commande
Souris
Application dans une fenêtre
- introduction
- gestion de la fenêtre
- menu - affichage
- menu - gestion des commandes
Introduction :
Pour créer une Application, il faut un éditeur de texte (même rudimentaire). Il faut une compilateur et un peu de patience.
Le document initial doit avoir l'expention .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\jdk102\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
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 classes auront la structure suivante:
public class NOM_JUSTE
{
public static void main (String args[]) // il faut une fonction "main" pour démarrer l'application
{
bla,bla;
}
fonctions et instructions
}
définition d'une classe avec ou sans passage de paramètres | commentaires : |
public class Courant { double tension; double impedance; public Courant()
public Courant(double t, double i)
static public double CalculI()
} |
nom de la classe marque le début de la classe déclare une variable double : tension déclare une variable double : impedance défini une fonction sans paramètre : Courant() ouvre la fonction Courant() initiale la valeur de la variable tension à 230 initiale la valeur de la variable impedance à 23 ferme la fonction Courant() défini une fonction avec paramètre -double: Courant(t,i) ouvre la fonction Courant(t,i) initiale la valeur de la variable tension à la valeur de t initiale la valeur de la variable impedance à la valeur de i ferme la fonction Courant(t,i) défini la fonction de calcul : CalculI() ouvre la fonction CalculI() calcul la valeur à retourner ferme la foction CalculI() ferme la classe Courant |
Le programme appellant serait :
import java.awt.*;
import Courant;
public class Pour_voir
{
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
}
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)
Pour le détail de différent type de variable, voir "variables" dans le document JAVA.
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éclarartions 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 (var 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 return$ =' \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.1)
int valeur1,valeur2;
string Tableauchaine []; // tableau de chaînes
double [] tableau1,tableau2; // les [] peuvent être placés avant ou après le nom de la variable
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
{
public void paint (graphics g)
{
g.drawString("ouf, ça marche",10,20); // affiche le "texte" à 10 du bord G et à 20 du haut
}
}
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()
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 (int rgb)
public Color (sting nom_couleur)
exemples :
import java.awt.*;
public class choixcouler
{
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);
}
}
note : cette commande est aussi valable pour des lignes
Avec Java on peut passer des paramètres depuis DOS
commande DOS |
récupération dans l'application |
java blut 3 trucs suivent - passage de 3 paramètres : args[0]="3", args[1]= "trucs", args[3]= "suivent"
java blut 2.1 "trucs suivent" - passage de 2 paramètres : args[0]= "2",args[1]="trucs suivent" |
public class blut {
} |
note: Dans cet exemple, la paramètre chaîne 1 est converti en double
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:
|
|
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 :
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)
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 jane
g.drawRect(base,base,base*3,base*3); //trace un carré de 20/20 dont le coin sup. G est à (10,10)
méthodes de la classe java.awt.Graphics
Public absttract void drawRoundRect (int x1, int y1, int largeur, int hauteur, int diamelipshori, int diamelipseverti)
exemples d'instuctions dans une fonction :
g.drawRoundRect(0,0,27,80,5,5);
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çé
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.drawfill3DRect(10,90,50,40, true);// trace un bouton relevé
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
public void drawPolygon (Polygon objet_polygone)
exemples d'instuctions dans une fonction :
int i; //valeur des X
int compteur = 0;
double angle=0;
int pos_x[] = new int [50];// crée un tableau de 51 valeurs .
int pos_y[] = new int [50]; // crée un tableau de 51 valeurs.
for (i=10;i<=110;i=i+2)
{
pos_x[compteur] = i ;
pos_y[compteur]=(int)(150-100*Math.sin(angle));//valeur entiére
compteur++; // incrémente le compteur du tableau
angle +=0.2; // incrémente l'angle de 0.2 radian
}
g.drawPolygon (pos_x,pos_y,50);//trace une sinusoïde de 100 d'amplitude
g.drawLine ( 10,150,110,150);//trace l'axe des X
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é
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é
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
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
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
public class affiche
{
fonctions et instructions
public void XYZ()
{
instructions...
repaint();
}
public void paint (graphics g)
{
g. drawSting(blut, nouveau_x, nouveau_y);
instructions...
}
}
bouton de la souris enfoncé
constructeur (méthode de la classe java.awt.Event) : public booleen mouseDown (Event evt, int x, int y)
note : evt = évenement généré; les entier x et y =>coordonées de la souris passé à la fonction
public booleen mouseDown (Event evt, int x, int y)// excécute la suite si la souris a été enfoncée
{
instructions...
return true; // cas traité
}
constructeur (méthode de la classe java.awt.Event) :public booleen mouseUp (Event evt, int x, int y)
note : sevt = évenement généré; les entier x et y =>coordonées de la souris
public booleen mouseUp (Event evt, int x, int y)// excécute la suite si la souris a été relâchée
{
instructions...
return true; // cas traité
}
la souris entre dans la zone graphique
constructeur (méthode de la classe java.awt.Event) : public booleen mouseEnter (Event evt, int x, int y)
note : sevt = évenement généré; les entier x et y =>coordonées de la souris
public booleen mouseEnter(Event evt, int x, int y)// excécute la suite si la souris entre dans le graphic (zone de l'applet)
{
instructions...
return true; // cas traité
}
la souris sort de la zone graphique
constructeur (méthode de la classe java.awt.Event) : public booleen mouseExit (Event evt, int x, int y)
note : sevt = évenement généré; les entier x et y =>coordonées de la souris
public booleen mouseExit (Event evt, int x, int y)// excécute la suite si la souris sort dans ls graphique
{
instructions...
return true; // cas traité
}
constructeur (méthode de la classe java.awt.Event) : public booleen mouseMove (Event evt, int x, int y)
note : sevt = évenement généré; les entier x et y =>coordonées de la souris
public booleen mouseMove (Event evt, int x, int y)// excécute la suite si la souris se déplace
{
instructions...
return true; // cas traité
}
la souris se déplace bouton enfoncé
constructeur (méthode de la classe java.awt.Event) : public booleen mouseDrag (Event evt, int x, int y)
note : sevt = évenement généré; les entier x et y =>coordonées de la souris
public booleen mouseDrag (Event evt, int x, int y)// excécute la suite si la souris se déplace avec le bouton enfoncé
{
instructions...
return true; // cas traité
}
constructeurs ( classe java.awt.Label) de l'objet Label
public Label (String chaîne _à_afficher)
public Label ( String chaîne _à_afficher, int align)
note : align => Label.LEFT, Label.CENTER, Label.Right
Label texte1 = new Label ("ceci est un texte écrit sur une ligne");
public void init()
{add (texte1);}
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'
constructeurs ( classe java.awt.TextField) de l'objet TextField (Champ texte)
public TextField (int nombre_de caractères)
public TextField ( String chaîne _à_afficher)
public TextField (int nombre_de caractères, String chaîne _à_afficher )
exemple :
TextField Champ1 = new TextField ("ceci est un texte contenu dans un champ");
public void init()
{add (Champ1);}
méthode de la classe TextField :
TextField.echoCharIsSet () -> (boolean) true si le texte est caché sinon false
exemple : variable_booleen = Champ1.echoCharIsSet();
TextField.getColumns () -> (int) renvoie le nombre de caractère du champ
exemple : variable_int = Champ1.getColumns();
TextField.minimumSize () -> (objet Dimension) renvoie la taille minimale pour le texte du champ
TextField.preferredSize () -> (objet Dimension) renvoie la taille optimale pour le texte du champ
TextField.getEchoChar () -> (char) renvoie le caractère de masquage
TextField.setEchoCharacter (char caractère_de_masquage) -> (char)défini le caractère de masquage
exemple : Champ1.setEchoCharacter ('*');
TextField.paramString () -> (String) renvoie le texte du champ
TextField.getText () -> (String) renvoie le texte du champ
TextField.setText () -> (String) modifie le texte du champ
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)
exemple :
TextArea Zone1 = new TextArea ("ceci est un texte contenu dans Zone1", 4, 30 );
public void init()
{add (Zone1);}
méthode de la classe TextArea :
TextArea.getRows () -> (int) renvoie le nombre de ligne de la zone
exemple : variable_entière = Zone1.getRows ();
TextArea.getColumns () -> (int) renvoie le nombre de colonnes de la zone
exemple : variable_int = Zone1.getColumns();
TextArea.insertText (String chaîne, int position) -> insert la 'chaîne' dans la zone à 'position'
TextArea.minimumSize () -> (objet Dimension) renvoie la taille optimale pour le texte de la zone
exemple : variable_int = Integger.toString(Zone1.minimumSize().height,10);
TextArea.preferredSize () -> (objet Dimension) renvoie la taille optimale pour le texte du champ
TextArea.paramString () -> (String) renvoie la valeur de la zone text
TextArea.getText () -> (String) renvoie le texte du champ
TextArea.replaceText (String chaîne, int départ, int fin) -> (String) modifie le texte du champ par 'chaîne' de 'début' à 'fin'
constructeurs ( classe java.awt.Checkbox) de l'objet Checkbox (Case à cocher)
public Checkbox (String label _à_afficher, Checkboxgroup nom_du_groupe, Boolean etat)
public Checkbox ( String label _à_afficher)
note : état =>true = coché, false = décoché
exemple :
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);
}
méthode de la classe Checkbox :
TextArea.setLabel (String étiquette) -> (String) défini l'étiquette de la case à cocher
TextArea.getLabel () -> (String) renvoie l'étiquette de la case à cocher
exemple : variable_Chaîne = variante1.getLabel (); // retourne '1er texte à choix'
TextArea.setState (boolean état) -> (boolean) défini l'état true (coché) ou false (décoché)
TextArea.getState () -> (boolean) renvoie l'état true (coché) ou false (décoché)
exemple : variable_boolean = variante2.getState();
constructeurs ( classe java.awt.CheckboxGroup) de l'objet CheckboxGroup (Case à cocher)
public CheckboxGroup ()
exemple :
CheckboxGroup groupe1 = new CheckboxGroup ();
Checkbox variante1 = new Checkbox ("1er texte à choix", groupe1, false);
public void init()
{add (variante1);}
méthode de la classe Checkbox :
Checkbox.setCurrent (Checkbox nom) -> (objet) sélectionne un objet du groupe
Checkbox.getCurrent () -> (String) renvoie l'objet sélectionné
exemple : variable_Chaîne = groupe1.getCurrent().getLabel() // retourne le texte sélectionné dans groupe1
String.toString () -> renvoie une chaîne qui représente les valeurs du groupe d'option.
constructeurs ( classe java.awt.Choice) de l'objet Choice (Liste déroulante)
public Choice ()
exemple :
Choice Liste1 = new Choice ();
public void init()
{add (Liste1);}
méthode de la classe Choice :
Choice.addItem (String texte) -> défini une entrée dans la liste
exemple : Liste1.addItem ("mon premier choix");
exemple : Liste1.addItem ("mon second choix");
Choice.CountItems () -> (int) renvoie le nombre d'entrée de la liste
exemple : variable_Entière= Liste1.CountItems();
Choice.getItems (int numéro_de_ligne-1) -> (String) renvoie la chaîne de la ligne +1 est indiquée.
Choice.getSelectedItems () -> (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 .
constructeurs ( classe java.awt.List) de l'objet Liste (Liste déroulante)
public List (int nombre_de_ligne_visible, boolean selection_multiple)
note : boolean selection_multiple => true = plusieurs sélections possible, false = une seule sélection
exemple :
List Liste1 = new List (2, fasle);
public void init()
{{add (Liste1);}
méthode de la classe List :
List.addItem (String texte) -> ajoute une entrée dans la liste
exemple : Liste1.addItem ("mon premier choix");
Liste1.addItem ("mon second choix");
List.CountItems () -> (int) renvoie le nombre d'entrée de la liste
exemple : variable_Entière =Liste1.CountItems();
List.allowsMultipleSelection () -> (boolean) renvoie true si la sélection multiple est possible
List.clear () ->supprime les entrées définies dans la zone de liste
List.delItem (int position) -> supprime l'entrée position numéro 'position'
List.delItems (int de, int à) -> supprime les entrées de position numéro 'de' à position numéro 'à'
exemple : Liste1.delItems(2,5);
List.deselect (int position) ->désélectionne l'entrée à la position numéro 'position'
List.getItem (int position) -> (String) renvoie la chaîne sélectionnée de la position 'position' .
List.getRows () -> (int) renvoie le nombre d'entrées de la liste
List.getSelectedIndex ( ) -> (int) renvoie la valeur de la position de l'entrée sélectionnée
List.getSelectedItem ( ) -> (String) renvoie la chaîne de l'entrée sélectionnée
List.getSelectedItems ( ) -> (String []) renvoie dans un tableau les chaînes des entrées sélectionnée
List.isSelected (int position ) -> (boolean) renvoie true si l'entrée de la 'position' est sélectionnée
List.Select (int position ) -> sélectionne l'entrée 'position'
List.setMultipleSelection (boolean multple ) -> autorise la sélection multiple si 'multiple' vaut true
constructeurs ( classe java.awt.Button) de l'objet Button (Bouton)
public Button (String Nom_de_l'étiquette_dans_le_bouton)
exemple :
Button BoutonOK = new Button ("OK");
....
add(BoutonOK);
méthode de la classe Button :
Button.setLabel (String nom_de_l'étiquette) -> (String) modifie la chaîne dans le bouton
Button.getLabel () -> (String) renvoie la chaîne du bouton
exemple : variable_Chaîne = groupe1.getCurrent().getLabel() // retourne le texte sélectionné dans groupe1
String.toString () -> renvoie une chaîne qui représente les valeurs du groupe d'option.
public boolean action (Event evt, Objet arg)
{
if (evt.target instanceof Checkbox)
traitement...
return true; // événement traité
}
public boolean action (Event evt, Objet arg)
{
if (evt.target instanceof Checkbox)
traitement...
return true; // événement traité
}
public boolean action (Event evt, Objet arg)
if (evt.target == OK) // OK est le nom du bouton
{
traitement...
return true; // événement traité
}
événement Liste déroulante
public boolean action (Event evt, Objet arg)
if (evt.target == Liste1) // Liste1 est le nom de la liste
{
traitement...
return true; // événement traité
}
Introduction aux applications dans des fenêtres:
Pour utiliser Java non pas dans une fenêtre DOS, mais dans une 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.awt.*;
public class Fenetre extends Frame// constructeur
{}
public static void main (String args[]) // procédure principale
{
Fenetre Fenster=new Fenetre();// fenêtre sans titre - Untitled
Fenster.show();// affiche l'objet fenêtre
...
case fermeture :
public boolean handleEvent (Event evt) // gestion de l'évenement
{
if (evt.id == Event.WINDOW_DESTROY) // si case de fermeture
{
System.exit(0); // ferme la fenêtre
return (tue);
}
return super.handleEvent (evt);
}
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.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.resize (int largeur, int hauteur) -> renvoie true si la fenêtre peut être redimensionnée
Fenster.resize (350,240);
Frame.isResizable () -> renvoie true si la fenêtre peut être redimensionnée
Frame.setResizable (boolean redim) -> redimensionnable si redim=true
Fenster.setResizable (false);
Frame.setCursor (Image image_curseur) -> definit l'apparence du curseur
Frame.setIconImage (Image image_icone) -> definit l'icône de l'application
ajouter des menus c'est facile !
Ce sera plus simple avec un exemple.
import java.awt.*;
public class Fenetre extends Frame
{
public fenetre
{
MenuBar menu1 = new MenuBar(); // défini une nouvelle barre de menu
Menu menFich = new Menu ("&Fichier"); // défini un titre de menu :Fichier
Menu menCou = new Menu("&Couleur"); // défini un titre de menu : Couleur
menu1.add (menFich);// met le titre dans la barre
menu1.add (menCou); //met le titre dans la barre
MenuItem F1 = new MenuItem ("&Quitter") // définit une commande
MenuItem C1 = new MenuItem ("&Noir") // définit une commande
MenuItem C2 = new MenuItem ("&Rouge") // définit une commande
menFich.add (F1); // met la commande dans le menu
menFich.add (C1); // met la commande dans le menu
menuCou.add (C2); // met la commande dans le menu
setMenuBar (menu1);
}
public boolean handleEvent (Event evt)
{
gestion des evénements
}
public static void main (String args[])
{
création et affichage de la fenêtre
}
}
Ce sera plus simple avec un exemple en rapport avec l'exemple précédent:
import java.awt.*;
public class Fenetre extends Frame
{
int couleur;
public Fenetre ()
{ mise en place des menus }
public boolean action (Event evt, Object arg) // événement liés au menu
{
if (evt.target instanceof MenuItem)
{
String commande = (String) arg;
if (commande.equals("&Quitter"))
System.exit (0);
if (commande == "&Noir")
couleur = 1;
if (commande == "&Rouge")
couleur = 2;
}
return true;
}
|
dS_de_M - 1998 - FIN - FIN - FIN - FIN - FIN - FIN - FIN - FIN - FIN - FIN - FIN - FIN - FIN - FIN - FIN - FIN - FIN - FIN -