esperanto
interlingua
 

Aller à la ligne

Le principe

Nous devons dessiner 216 rectangles, qui pourront donc tenir sur 12 lignes de 18 rectangles chacune.

Pour ce faire, nous allons déclarer une variable permettant de changer l'ordonnée [int ordonnee = 0;] et une variable-compteur [int compteur = 0;] qui sera incrémentée de 1 à chaque boucle [compteur += 1;] . Lorsque cette variable prendra la valeur 19 (à la dix-huitième boucle), nous dirons au programme de passer à la ligne en incrémentant non plus l'abscisse, mais l'ordonnée [ordonnee += 12;] , qui jusque là est toujours restée à 0.
Il ne faudra pas non plus oublier de remettre à 0 l'abscisse et la variable-compteur pour que la ligne suivante reparte du bord de l'applet et se termine de nouveau après le dix-huitième rectangle.

Une instruction if()

Comment dire au programme que, lorsque la variable-compteur aura atteint une valeur supérieure à 18, il devra faire telle et telle chose ?
Une solution est l'emploi d'une intruction if().
Cette instruction permet de tester la vérité d'une proposition (s'il est vrai que telle variable a telle valeur...) et d'agir en conséquence (...alors je fais ça, sinon je fais autre chose).

Voici le code de l'applet agrémenté de cette instruction :

import java.awt.*;
public class applet10 extends java.applet.Applet
{
public void paint (Graphics g)
   {
   int abscisse, ordonnee, compteur;---manière de déclarer en une fois plusieurs variables
   abscisse = 0;---il vaut mieux cependant les initialiser une par une
   ordonnee = 0;
   compteur = 0;

   for (int R=0;R<256;R+=51)
      {
      for (int G=0;G<256;G+=51)
         {
         for (int B=0;B<256;B+=51)
            {
            g.setColor(new Color(R,G,B));
            g.fillRect(abscisse,ordonnee,10,10);
            abscisse+=12;
            compteur +=1;
            if (compteur == 18)---attention au signe == qui exprime l'égalité
               {
               compteur = 0;
               abscisse = 0;
               ordonnee += 12;
               }
//if
            }//for B
         }//for G
      }//for R
   }//paint
}

 

Et voici le résultat :

Le code prêt à l'emploi

Reste maintenant à rendre chacun de ces petits rectangles cliquable. Cela nous amènera, dans les prochaines étapes, à profiter du caractère "orienté objet" du langage java.