|
Un tabella de objectos RectangleArrivate a iste passo, nos sape designar 216 rectangulos de colores differente, e nos sape render un sol rectangulo cliccabile, gratias a un objecto Rectangle. Instantiar automaticamente objectosAl passo 10, nos ha instantiate un sol objecto Rectangle per le instruction :
int abscissa = 0;
for (i=0; i<5; i++) { Rectangle r = new Rectangle(abscissa, 10, 10, 10); abscissa +=12; }
Le inconveniente, como vos lo vide forsan, es que ille iterationes crea cinque vices le mesme objecto Rectangle r : il esserea necessari de donar a cata objecto un nomine differente (r1, r2...), e postea referer se al attributos e methodos de cata rectangulo [per exemplo : r1.width, r2.inside()], sed illo es impossibile con ille medio. Un tabellaUn tabella permitte de stockar e de retrovar facilemente plure variabiles. Nos ha dicte al passo 5 que un variabile era un cassa, que nos pote impler con un valor. Un tabella es un cassa plus grande que pote continer un o plure variabiles. int [] tabi ; Iste instruction face nascer un tabella de variabiles de typo "numero integre" nominate tabi. Il es etiam possibile de precisar lo que se nomina le longitude del tabella, id es le numero de elementos que continera le tabella : Quomodo impler un tabella ? Il es possibile de utilisar un instruction de ille sorta : Ille parve schema vos adjutara forsan a vider lo que es un tabella con su indicios :
Il es si facile, utilisante un iteration con for(), de impler un tabella. Per exemplo :
int [] tabi = new int[5];
for (int i=0; i<5; i++) { tabi [i] = i; }
Iste instructiones face nascer un tabella de cinque numeros integre : 0, 1, 2, 3, 4. Un tabella de objectosNos va applicar iste astute medios al creation de un tabella de objectos Rectangle.
int abscissa = 0;
Rectangle [] tabRectangle = new Rectangle[5];--- declaration de un tabella de objectos Rectangle for (int i=0; i<5; i++) { tabRectangle [i] = new Rectangle(abscissa,10,10,10);--- assignation de valores al tabella gratias a un iteration abscissa +=12; }
Iste codice permitte de crear 5 objectos Rectangle, cata uno habente un abscissa differente. Il essera possibile postea de designar cata uno de iste objectos per lor indicio in le tabella : tabRectangle[0] es le prime Rectangle (su abscissa es 0), tabRectangle[1] es le secunde (su abscissa es 12), et cetera. Ecce le codice complete del applet, inricchite per un zona de texto, como viste in le passo precedente :
import java.applet.*;
import java.awt.*; public class applet15 extends Applet { int abscissa = 0; Rectangle [] tabRectangle = new Rectangle[5]; boolean intra; String t = new String(""); TextField T = new TextField(t, 5); public void init() { add(T); for (int i=0; i<5; i++) { tabRectangle [i] = new Rectangle(abscissa,30,10,10); abscissa+=12; }//for i }//init public void paint(Graphics g) { g.setColor(Color.black); for (int j=0;j<5;j++) { g.fillRect(tabRectangle[j].x,tabRectangle[j].y,tabRectangle[j].width,tabRectangle[j].height); }//for j }//paint public boolean mouseDown(Event evt, int x, int y) { int k; for (k=0; k<5;k++) { intra =(tabRectangle[k].inside(x,y)) ? true : false; if (intra) { t="Si"; 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 :
|
||
![]() |
![]() |