Dans cette fiche...

<Retour>

Description de l'applet

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... Votre navigateur n'est pas compatible Java !

Listing de l'applet

// -----------------------------------------
// 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);
	}
}

Le listing en détail...

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()).

Intégration de l'applet dans la page

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.