Dans cette fiche... |
Difficulté : ![]() |
Résultat |
Lorsque vous devez gérer un nombre élevé de variables, il est préférable de passer par un tableau, plutôt que par s1, s2, s3, s4... |
// ----------------------------------------- // TABLO1 : UTILISATION DES TABLEAUX EN JAVA // -----------------------------------------
import java.applet.*; import java.awt.*;
public class Tablo1 extends Applet { // Déclaration et initialisation de tableaux int tab1[] = {5, 10, 15, 20, 25}; String tab2[] = {"lundi", "mardi", "mercredi", "jeudi", "vendredi"};
// Déclaration de tableaux sans initialisation int tab3[]; String tab4[]; // Initialisation de l'applet public void init() { // Couleur de fond setBackground(Color.black);
// Initialisation du tableau d'entiers tab3 = new int[4]; tab3[0] = 28; tab3[1] = 17; tab3[2] = 150; tab3[3] = 19;
// Initialisation du tableau de chaînes tab4 = new String[3]; tab4[0] = "janvier"; tab4[1] = "février"; tab4[2] = "mars"; }
// --------- // AFFICHAGE // ---------
public void paint(Graphics g) { int i;
// Affichage du 1er tableau g.setColor(Color.orange); for(i = 0; i < 5; i++) g.drawString(""+tab1[i], 10 + i*20, 15);
// Changement d'un élément dans le 2nd tableau tab2[1] = "???";
// Affichage du 2nd tableau g.setColor(Color.yellow); for(i = 0; i < 5; i++) g.drawString(tab2[i], 10 + i*45, 30);
// Affichage du 3ème tableau g.setColor(Color.white); for(i = 0; i < 4; i++) g.drawString(""+tab3[i], 10 + i*30, 45);
// Et enfin le dernier tableau ! g.setColor(Color.red); for(i = 0; i < 3; i++) g.drawString(tab4[i], 10 + i*50, 60); } }
Les lignes non commentées ont déjà été traitées dans les exemples précédents.
int tab1[] = {5, 10, 15, 20, 25}; String tab2[] = {"lundi", "mardi", "mercredi", "jeudi", "vendredi"}; |
2 tableaux sont déclarés et initialisés en même temps. Le
premier est un tableau d'entiers, le second un tableau de chaînes de
caractères. Implicitement, chaque tableau a 5 éléments, numérotés de 0 à 4. Ainsi tab1[3] vaut 20. Attention : cette affectation directe de variables (avec les accolades) ne fonctionne que sur une ligne de déclaration. |
int tab3[]; String tab4[]; |
Cette fois, on déclare 2 tableaux, mais on ne leur donne pas de valeur. |
tab3 = new int[4]; |
On réserve de la mémoire pour 4 entiers. Important : cette ligne est impérative avant de pouvoir donner des valeurs au tableau. Il est classique, quand on débute en Java, de l'oublier. Vous obtiendriez alors une NullPointerException à l'exécution de l'applet. Raté :o) ! |
tab3[0] = 28; tab3[1] = 17; tab3[2] = 150; tab3[3] = 19; |
Maintenant que 4 entiers ont été réservés, il est
possible de remplir le tableau. Notez encore une fois que les indices vont de 0 à 3 (et non de 1 à 4). On pourait bien sûr remplir le tableau par une boucle. |
for(i = 0; i < 4; i++) g.drawString(""+tab3[i], 10 + i*30, 45); |
Une boucle permet d'afficher le contenu du tableau, avec un x
qui varie de 30 pixels pour chaque élément.
Note : le ""+tab3[i] permet de créer une chaîne de caractères pour l'affichage (il faut convertir les entiers de tab3[] au préalable, pour pouvoir utiliser drawString()). |
Voici le code qui a été utilisé dans cette page HTML pour faire apparaître l'applet :
<applet code="Tablo1.class" width=250 height=90> Votre navigateur n'est pas compatible Java ! </applet>
Pour plus de précisions sur l'intégration d'une applet, cliquez ici.