Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ayuda Librería Swing PDF
Ayuda Librería Swing PDF
paint, cuyo prototipo es public void paint(Graphics g), que se invoca cada vez
publicclassTableroextendsJPanel
{
privateintalto; //Altodeltablero
privateintancho; //Anchodeltablero
privateintcentro; //Centro(enhorizontal)deltablero
privateintanchoBloque; //indicacuantomidedeanchouncuadradodeunadelaspiezas.
//Seusarparapintartodaslascasillasconesetamao
publicTablero(intancho,intalto)
{
this.ancho=ancho;
this.alto=alto;
this.centro=this.centro/2;
//Elmetodopaintquenosotrossobreescribimos
publicvoidpaint(Graphicsg)
{
pintaTablero(g);
//Aqupodravenirtambinelpintadodelaficha
}
privateGraphicspintaTablero(Graphicsg)
{
for(inty=0;y<this.alto;y++)
{
//Hacemosunrecorridoporfilas,siendoylafila
//correspondiente(eneljuego,de0a24)
for(intx=0;x<this.alto;x++)
{
//Hacemosunrecorridoporcolumnas,siendoxla
//columnacorrespondiente(eneljuego,de0a14)
if(estaVaciaCasilla(x,y))
{
g.setColor(Color.black);
//Lacolocamosanegro,suponiendonegroel
//colordelfondo.Tambinpuedeusarsesi
//seprefiereelblancocomocolordefondo
g.fillRect(x*anchoBloque,y*anchoBloque,
anchoBloque,anchoBloque);
//Pintamoselcuadradocorrespondiente enel
//colordelfondo
}
else
{
g.setColor(obtieneColorCasilla(x,y));
//Colocamoselcoloralquelecorresponda
//aesacasilla,puestoqueesunacasillaque
//estocupada.
//ElmtodoobtieneColorCasilladependerde
//cmosehaimplementadoeltablero
g.fillRect(x*anchoBloque,y*this.anchoBloque,
anchoBloque,anchoBloque);
//Pintamoselcuadradocorrespondiente enel
//colordelacasillacorrespondiente
}
}
returng;
}//Findelmtodo
}//Findelaclase
tenemos una Ficha, que estar formada por cuatro casillas. La tcnica consiste en,
al igual que se ha hecho con el Tablero, buscar las coordenadas en las que est la
Ficha colocada (sus cuatro partes componentes) y dibujar cada una de esas
privateGraphicspintaFicha(Graphicsg,Fichaf)
{
Coordenada[]coords=f.obtieneCoordenadas();
//Cargamosenunavariableauxiliarylascoordenadasdelafichaquequeremospintar
for(Coordenadac:cords)
{
g.setColor(f.obtieneColorFicha());
//Colocamoselcoloralquelecorrespondaaesaficha.
//ElmtodoobtieneColorFichadependerdecmoseha
//implementadolaficha
g.fillRect(c.obtieneX()*anchoBloque,c.obtieneY()*anchoBloque,
anchoBloque,anchoBloque)
//Pintamoselcuadradocorrespondiente enelcolor
//delapiezaofichacorrespondiente
}
returng;
}
atributo que es Ficha, que indica la ficha que ahora mismo est en juego), entonces lo
normal y fcil es que modifiquemos el mtodo de pintado del Tablero (mtodo paint
//Elmetodopaintquenosotrossobreescribimos
publicvoidpaint(Graphicsg)
{
pintaTablero(g);
pintaFicha(g,this.f)
//As,feselatributoprivadodeclaradoenlaclaseas:
//Fichaf;
//SehabrtenidoqueincluirenelconstructordeTableroesto:
//f=newFicha();
//EstainvocacindependerdelconstructordeFichaquehayamoscreado