|
Aldono de la kolorojLa klaso Kvadrato2Ni devas ankoraŭ aldoni nur la kolorojn. Ni kompletigos nian objekton Kvadrato per tri kromaj atributoj, R, G kaj B, kiujn ni vokos en la retprogramo. Jen la kodo de tiu nova klaso :
import java.awt.*;
class Kvadrato2 extends Rectangle { private int absciso; private int ordinato; public int R; public int G; public int B; public Carre2(int absciso, int ordinato, int R, int G, int B) { super(absciso, ordinato, 10, 10); this.absciso = absciso; this.ordinato = ordinato; this.R = R; this.G = G; this.B = B; } public void paint(Graphics g) { g.setColor(new Color(R, G, B)); g.fillRect(absciso, ordinato, 10, 10); } }
La retprogramoNi nun uzos tiun novan klason en la retprogramo. Ni profitos tiun strukturon por peti, ke ĉiu objekto Kvadrato2 afiŝu siajn atributojn R, G kaj B. Ni kompreneble reuzos la meĥanismon viditan en la paŝo 8 por la afiŝado de la koloroj kaj la alineado. Ni uzas la metodon Integer.toString() por transformi entjeron en signoĉenon afiŝeblan en entajpebla linio.
import java.applet.*;
import java.awt.*; public class apleto17 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(""); 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) { 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); } }//for k return true; } public boolean mouseUp(Event evt, int x, int y) { ene=false; t=""; T.setText(t); return true; } }
Jen la rezulto :
La uzpreta kodo de la klaso La ĉefa parto de la retprogramo estas nun efektivigita. En la venontaj paŝoj, ni plibonigos la aspekton kaj aldonos la afiŝadon de la RGB-valoroj en la deksesuma nombrosistemo. |
||
![]() |
![]() |