Java - Pintar celdas jTable

   
Vista:

Pintar celdas jTable

Publicado por mjdo (7 intervenciones) el 08/06/2010 21:57:17
Tengo un jTable y quiero pintar en algunas celdas un circulo con un número dentro.
¿Alguien puede ayudarme?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Pintar celdas jTable

Publicado por James (207 intervenciones) el 08/06/2010 22:42:01
debes crear un render para esa celda, un JTable usa un render y un editor por cada celda, el render indica lo que se mostrara y como se mostrara, si creas un render adecuado podrias condicionar y aplicar de acuerdo al caso, si no lo logras podria enviarte algun ejemplo, Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Pintar celdas jTable

Publicado por mjdo (7 intervenciones) el 10/06/2010 11:23:53
Muchas gracias! He estao echando un vistazo a TableCellRenderer y he probado con el ejemplo.
He creado la clase y he copiado:
class RenderTabla implements TableCellRenderer{

public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
boolean hasFocus, int row, int column) {


JLabel etiqueta = new JLabel();

if (isSelected)
etiqueta.setBackground (Color.CYAN);
else
etiqueta.setBackground (Color.YELLOW);

if (value instanceof Isla){
etiqueta.setOpaque(true);
etiqueta.setText((String)value);
}

return etiqueta;
}
}

Luego en mi clase encargada de generar el tablero, pongo:

RenderTabla miRender = new RenderTabla();
jTable1.setDefaultRenderer( Isla.class, miRender);
Component comp=null;
//Recorro la tabla con un for y hago esto:
comp=miRender.getTableCellRendererComponent(jTable1, casilla, false, true, i, j);
jTable1.setValueAt(comp, j, j);

Se supone que el color de las todas las celdas seria Amarillo, no?? es que no ocurre nada.
Acabo de empezar con swing y no tengo ni idea!!!

Si me puedes poner un ejemplo sencillo para probar, te lo agradezco.
Y el tema de pintar el circulito con el número dentro??
Muchas gracias y perdón por la torpeza.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar