|
Ajout des couleursLa classe Carre2Il ne reste plus qu'à ajouter les couleurs. Nous allons compléter notre objet Carre en lui donnant les trois attributs R, G et B, que nous appellerons dans l'applet. Voici le code de cette nouvelle classe :
import java.awt.*;
class Carre2 extends Rectangle { private int abscisse; private int ordonnee; public int R; public int G; public int B; public Carre2(int abscisse, int ordonnee, int R, int G, int B) { super(abscisse, ordonnee, 10, 10); this.abscisse = abscisse; this.ordonnee = ordonnee; this.R = R; this.G = G; this.B = B; } public void paint(Graphics g) { g.setColor(new Color(R, G, B)); g.fillRect(abscisse, ordonnee, 10, 10); } }
L'appletNous allons maintenant utiliser cette nouvelle classe dans l'applet. Nous allons pouvoir profiter de cette structure pour demander à chaque objet Carre2 d'afficher ses attributs R, G et B. Nous réutilisons bien sûr le mécanisme vu à l'étape 8 pour l'affichage des couleurs et le passage à la ligne. Nous avons recours à la méthode Integer.toString() pour transformer un entier en une chaîne de caractères affichable dans une zone de texte.
import java.applet.*;
import java.awt.*; public class applet17 extends Applet { int abscisse = 0; int ordonnee = 30; int compteur = 0; int R = 0; int G = 0; int B = 0; int i = 0; Carre2 [] tabCarre = new Carre2[216]; boolean dedans; String t = new String(""); TextField T = new TextField(t, 10); public void init() { add(T); for (int R=0;R<256;R+=51) { for (int G=0;G<256;G+=51) { for (int B=0;B<256;B+=51) { tabCarre [i] = new Carre2(abscisse,ordonnee, R, G, B); abscisse+=12; compteur +=1; i++; if (compteur == 18) { compteur = 0; abscisse = 0; ordonnee += 12; }//if }//for B }//for G }//for R }//init public void paint(Graphics g) { for (int j=0;j<216;j++) { tabCarre[j].paint(g); }//for j }//paint public boolean mouseDown(Event evt, int x, int y) { int k; for (k=0; k<216;k++) { dedans =(tabCarre[k].inside(x,y)) ? true : false; if (dedans) { t=Integer.toString(tabCarre[k].R) + " " + Integer.toString(tabCarre[k].G) + " " + Integer.toString(tabCarre[k].B); T.setText(t); } }//for k return true; } public boolean mouseUp(Event evt, int x, int y) { dedans=false; t=""; T.setText(t); return true; } }
Et voici le résultat :
Le code de la classe prêt à l'emploi L'essentiel de l'applet est maintenant réalisé. Dans les prochaines étapes, nous allons un peu améliorer la présentation et ajouter l'affichage des codes RGB en hexadécimal. |
||
![]() |
![]() |