|
Aldono de la konvertado en la deksesuman nombrosistemonLa 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 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. |
||
![]() |
![]() |