esperanto
français
 

Addition del colores

Le classe Quadrato2

Nos debe ancora solmente adder le colores. Nos va completar nostre objecto Quadrato donante lo le tres attributos R, G e B, que nos appellara in le applet.

Ecce le codice de iste nove classe :

import java.awt.*;

class Quadrato2 extends Rectangle
{
   private int abscissa;
   private int ordinata;
   public int R;
   public int G;
   public int B;

   public Quadrato2(int abscissa, int ordinata, int R, int G, int B)
   {
   super(abscissa, ordinata, 10, 10);
   this.abscissa = abscissa;
   this.ordinata = ordinata;
   this.R = R;
   this.G = G;
   this.B = B;
   }

   public void paint(Graphics g)
   {
   g.setColor(new Color(R, G, B));
   g.fillRect(abscissa, ordinata, 10, 10);
   }
}

 

Le applet

Nos va ora utilisar iste nove classe in le applet. Nos va poter profitar de ille structura pro demandar a cata objecto Quadrato2 de exhibir su attributos R, G e B. Nos reutilisa naturalmente le mechanismo viste al passo 8 pro le exhibition del colores e le facer de nove lineas. Nos adjuta nos del methodo Integer.toString() pro transformar un numero integre in un catena de characteres que pote esser exhibite in un zona de texto.

import java.applet.*;
import java.awt.*;

public class applet17 extends Applet
{
int abscissa = 0;
int ordinata = 30;
int contator = 0;
int R = 0;
int G = 0;
int B = 0;
int i = 0;
Quadrato2 [] tabQuadrato = new Quadrato2[216];
boolean intra;
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)
         {
         tabQuadrato [i] = new Quadrato2(abscissa,ordinata, R, G, B);
         abscissa+=12;
         contator +=1;
         i++;
         if (contator == 18)
            {
            contator = 0;
            abscissa = 0;
            ordinata += 12;
            }//if
         }//for B
      }//for G
   }//for R
}//init

public void paint(Graphics g)
   {
   for (int j=0;j<216;j++)
      {
      tabQuadrato[j].paint(g);
      }//for j
   }//paint

   public boolean mouseDown(Event evt, int x, int y)
   {
   int k;
   for (k=0; k<216;k++)
      {
      intra =(tabQuadrato[k].inside(x,y)) ? true : false;
      if (intra)
         {
         t=Integer.toString(tabQuadrato[k].R) + " " + Integer.toString(tabQuadrato[k].G) + " " + Integer.toString(tabQuadrato[k].B);
         T.setText(t);
         }
      }//for k
   return true;
   }

   public boolean mouseUp(Event evt, int x, int y)
   {
   intra=false;
   t="";
   T.setText(t);
   return true;
   }
}

 

Ecce le resultato :

Le codice del classe preste al uso
Le codice del applet preste al uso

Le scopo principal del applet es ora attingite. In le passos sequente, nos va meliorar un pauc le presentation e adder le exhibition del codices RGB in hexadecimal.