|
Dernières mises au pointNous allons améliorer l'affichage RGB en base dix en ajoutant les lettres R, G et B devant les chiffres. Cela n'est pas bien difficile, mais cela nous oblige à allonger la zone de texte T et à raccourcir la zone U, de manière qu'elles tiennent dans le panneau :
import java.applet.*;
import java.awt.*; public class applet23 extends Applet { int abscisse = 0; int ordonnee = 0; 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(""); String u = new String(""); TextField T = new TextField(t, 14); TextField U = new TextField(t, 7); Panel MonPanneau = new Panel(); public void init() { setBackground(Color.white); setLayout(new BorderLayout()); MonPanneau.add(T); MonPanneau.add(U); MonPanneau.setBackground(Color.white); 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 add("South", MonPanneau); }//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 = "R: " +Integer.toString(tabCarre[k].R) + " G: " + Integer.toString(tabCarre[k].G) + " B: " + Integer.toString(tabCarre[k].B); T.setText(t); String zero = new String("0"); String uR = new String(); uR = Integer.toString(tabCarre[k].R, 16); if (uR.equals(zero)) {uR = zero + zero;} uR = "#" + uR; String uG = new String(); uG = Integer.toString(tabCarre[k].G, 16); if (uG.equals(zero)) {uG = zero + zero;} String uB = new String(); uB = Integer.toString(tabCarre[k].B, 16); if (uB.equals(zero)) {uB = zero + zero;} U.setText(uR + uG + uB); } }//for k return true; } public boolean mouseUp(Event evt, int x, int y) { dedans=false; return true; } }
Et voici le résultat :
Le code de la classe prêt à l'emploi Et voilà ! On pourrait encore améliorer la présentation, et on pourrait inclure les conversions en hexadécimal dans la classe Carre2, mais l'essentiel est atteint. |
||
![]() |