Java - Obtener dato de una celda

 
Vista:

Obtener dato de una celda

Publicado por Jesús (7 intervenciones) el 11/06/2010 19:31:11
Hola.

El problema es el siguiente:
Tengo un jTable, lo cargo recogiendo datos de una lista. Esos datos son números. Luego necesito cambiar el aspecto de la celda dependiendo del número que tenga en ella. Supongo que habrá que hacerlo en el método TableCellRendererComponent, pero no sé como obtener el dato que tiene la celda para poder cambiarle el aspecto.

Espero que puedan 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
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

RE:Obtener dato de una celda

Publicado por YamilBracho (2315 intervenciones) el 11/06/2010 21:07:11
Cuando creas tu renderer se pasa el valor de la celca

public class RenderTabla extends DefaultTableCellRenderer{
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus, int row,
int column) {
Component cell = super.getTableCellRendererComponent(table, value,
isSelected, hasFocus, row, column);
....
}
return cell;
}
}

Object value contiene el valor de la celda
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:Obtener dato de una celda

Publicado por Jesús (7 intervenciones) el 11/06/2010 21:25:45
No me aclaro!!!

Te muestro el código, por si puedes ayudarme. Tengo un método que carga la tabla:

public void obtenerTablero(){
FabricaDeProblemas miFabrica=FabricaDeProblemas.getInstancia();
Tablero problema = miFabrica.obtenerProblema(Estrategias2D.ESTRATEGIA_ALEATORIA_BASICA);

for(int i=0;i<problema.getAltura();i++){
for(int j=0;j<problema.getAnchura();j++){
Coordenadas coord;
coord=problema.getCoordenadas(i, j);
Casilla casilla=problema.getCasilla(coord);
if (casilla instanceof Isla){
Isla isla=(Isla)casilla;
Integer n=isla.getN();
jTable1.setValueAt(n, i, j);
}
}
}
}

Lo primer que hago es llamar a ese método y luego hago:

RenderTabla miRender = new RenderTabla();
jTable1.setDefaultRenderer( Object.class, miRender);

Y en el renderer tengo:

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

JLabel cell =(JLabel) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
int x=((Integer)value).intValue();

if(x==1){
cell.setHorizontalAlignment(SwingConstants.CENTER);
cell.setIcon(new ImageIcon("11.png"));
}else{
cell.setBackground(Color.white);
}
return cell;
}

Y es como si no entrara en el renderer, porque el jTable sigue con el mismo aspecto que tiene si solo hago la llamada a obtenerTablero
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:Obtener dato de una celda

Publicado por matias (3 intervenciones) el 14/06/2010 16:15:57
jTable.getValueAt(numeroFila,numeroColumna);
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