français
interlingua
 

Aldono de la konvertado en la deksesuman nombrosistemon

La konverto de entjero en la deksesuman nombrosistemon estas tre facila per la metodo Integer.toString() : sufiĉas indiki la valoron 16 kiel duan parametron de tiu metodo, tiel :

String s = Integer.toString(int a, 16);

Tiu instrukcio konvertas la entjeron a en la deksesuman nombrosistemon kaj resendas ĝin sub formo de afiŝebla signoĉeno.

Ni aldonos entajpeblan linion, kiu afiŝos la tiel konvertitajn RGB-valorojn.

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

public class apleto18 extends Applet
{
int absciso = 0;
int ordinato = 30;
int registrilo = 0;
int R = 0;
int G = 0;
int B = 0;
int i = 0;
Kvadrato2 [] tabKvadrato = new Kvadrato2[216];
boolean ene;
String t = new String("");
String u = new String("");
TextField T = new TextField(t, 10);
TextField U = new TextField(t, 10);

public void init()
{
add(T);
add(U);
   for (int R=0;R<256;R+=51)
   {
   for (int G=0;G<256;G+=51)
      {
      for (int B=0;B<256;B+=51)
         {
         tabKvadrato [i] = new Kvadrato2(absciso,ordinato, R, G, B);
         absciso+=12;
         registrilo +=1;
         i++;
         if (registrilo == 18)
            {
            registrilo = 0;
            absciso = 0;
            ordinato += 12;
            }//if
         }//for B
      }//for G
   }//for R
}//init

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

   public boolean mouseDown(Event evt, int x, int y)
   {
   int k;
   for (k=0; k<216;k++)
      {
      ene =(tabKvadrato[k].inside(x,y)) ? true : false;
      if (ene)
         {
         t=Integer.toString(tabKvadrato[k].R) + " " + Integer.toString(tabKvadrato[k].G) + " " + Integer.toString(tabKvadrato[k].B);
         T.setText(t);
         u=Integer.toString(tabKvadrato[k].R,16) + Integer.toString(tabKvadrato[k].G,16) + Integer.toString(tabKvadrato[k].B,16);
         U.setText(u);

         }
      }//for k
   return true;
   }

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

 

Jen la rezulto :

La uzpreta kodo de la klaso
La uzpreta kodo de la retprogramo

La afiŝaĵo en la deksesuma nombrosistemo havas mankon : la 0 estas konvertita en 0, dum en HTML oni uzas la skribaĵon 00. Ni do devas afiŝigi la du nulojn per la jena kodo :

String zero = new String("0");
String uR = new String();
uR = Integer.toString(tabKvadrato[k].R, 16);--- Konverto de R
if (uR.equals(zero)) {uR = zero + zero;}--- Testo : se la konvertita R estas egala je "0", tiam uR fariĝu "00"

String uG = new String();
uG = Integer.toString(tabKvadrato[k].G, 16);
if (uG.equals(zero)) {uG = zero + zero;}

String uB = new String();
uB = Integer.toString(tabKvadrato[k].B, 16);
if (uB.equals(zero)) {uB = zero + zero;}

U.setText(uR + uG + uB);

 

Ni aldonos tiun kodon al la venonta versio de nia retprogramo : vidu la paŝon 19.