Usar el metodo paint de Graphics 2D
Publicado por Santiago (1 intervención) el 26/11/2005 15:14:49
El problema es el siguiente: yo tengo una matriz y cuando se llama al metodo paint se pintan todas las posiciones, que vendrian a ser fichas de un tablero, pero yo quiero pintar solamente 2 posiciones de la matriz MGrafica[4][4] y MGrafica[4][5] y las demas que queden igual, osea en blanco y negro. Como se hace esto???????
el que me pueda ayudar mil gracias
CODEimport java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
class Grafico2 extends JFrame
{
public Ficha MGrafica[][] = new Ficha [8][8];
Grafico2(String titulo)
{
super(titulo);
getContentPane().setPreferredSize(new Dimension (400,350));
getContentPane().setLayout(new GridLayout(8,8));
int i=0;
int j=0;
for ( i=0;i<8;i++)
for ( j=0;j<8;j++)
{
MGrafica[i][j]=new Ficha();
}
for ( i=0;i<8;i++)
{
MGrafica[i][0] .setBackground(i%2==0 ? Color.BLACK: Color.WHITE);
}
for (i=0;i<8;i++)
{
MGrafica[i][1] .setBackground(i%2==0 ? Color.WHITE: Color.BLACK);
}
for (i=0;i<8;i++)
{
MGrafica[i][2] .setBackground(i%2==0 ? Color.BLACK: Color.WHITE);
}
for (i=0;i<8;i++)
{
MGrafica[i][3] .setBackground(i%2==0 ? Color.WHITE: Color.BLACK);
}
for ( i=0;i<8;i++)
{
MGrafica[i][4] .setBackground(i%2==0 ? Color.BLACK: Color.WHITE);
}
for (i=0;i<8;i++)
{
MGrafica[i][5] .setBackground(i%2==0 ? Color.WHITE: Color.BLACK);
}
for (i=0;i<8;i++)
{
MGrafica[i][6] .setBackground(i%2==0 ? Color.BLACK:
Color.WHITE);
}
for (i=0;i<8;i++)
{
MGrafica[i][7] .setBackground(i%2==0 ? Color.WHITE: Color.BLACK);
}
for (i=0;i<8;i++)
for (j=0;j<8;j++)
if (MGrafica[i][j] != null )
{
getContentPane().add(MGrafica[i][j]);
}
super.pack();
super.show();
}
}
class Ficha extends JPanel
{
public void paint(Graphics g)
{
paintComponent(g);
((Graphics2D)g).setPaint(Color.RED );
((Graphics2D)g).fill( new Ellipse2D.Float(0,0,getWidth(),getHeight()) );
((Graphics2D)g).setStroke(new BasicStroke(1));
((Graphics2D)g).draw( new Ellipse2D.Float(0,0,getWidth(),getHeigh()) );
}
public static void main(String argv[])
{
Grafico2 G2 = new Grafico2("reversi");
}
}
el que me pueda ayudar mil gracias
CODEimport java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
class Grafico2 extends JFrame
{
public Ficha MGrafica[][] = new Ficha [8][8];
Grafico2(String titulo)
{
super(titulo);
getContentPane().setPreferredSize(new Dimension (400,350));
getContentPane().setLayout(new GridLayout(8,8));
int i=0;
int j=0;
for ( i=0;i<8;i++)
for ( j=0;j<8;j++)
{
MGrafica[i][j]=new Ficha();
}
for ( i=0;i<8;i++)
{
MGrafica[i][0] .setBackground(i%2==0 ? Color.BLACK: Color.WHITE);
}
for (i=0;i<8;i++)
{
MGrafica[i][1] .setBackground(i%2==0 ? Color.WHITE: Color.BLACK);
}
for (i=0;i<8;i++)
{
MGrafica[i][2] .setBackground(i%2==0 ? Color.BLACK: Color.WHITE);
}
for (i=0;i<8;i++)
{
MGrafica[i][3] .setBackground(i%2==0 ? Color.WHITE: Color.BLACK);
}
for ( i=0;i<8;i++)
{
MGrafica[i][4] .setBackground(i%2==0 ? Color.BLACK: Color.WHITE);
}
for (i=0;i<8;i++)
{
MGrafica[i][5] .setBackground(i%2==0 ? Color.WHITE: Color.BLACK);
}
for (i=0;i<8;i++)
{
MGrafica[i][6] .setBackground(i%2==0 ? Color.BLACK:
Color.WHITE);
}
for (i=0;i<8;i++)
{
MGrafica[i][7] .setBackground(i%2==0 ? Color.WHITE: Color.BLACK);
}
for (i=0;i<8;i++)
for (j=0;j<8;j++)
if (MGrafica[i][j] != null )
{
getContentPane().add(MGrafica[i][j]);
}
super.pack();
super.show();
}
}
class Ficha extends JPanel
{
public void paint(Graphics g)
{
paintComponent(g);
((Graphics2D)g).setPaint(Color.RED );
((Graphics2D)g).fill( new Ellipse2D.Float(0,0,getWidth(),getHeight()) );
((Graphics2D)g).setStroke(new BasicStroke(1));
((Graphics2D)g).draw( new Ellipse2D.Float(0,0,getWidth(),getHeigh()) );
}
public static void main(String argv[])
{
Grafico2 G2 = new Grafico2("reversi");
}
}
Valora esta pregunta
0