Formato en un JTable
Publicado por Daniel (8 intervenciones) el 12/11/2019 20:49:44
Los molesto para ver si alguien tiene idea de como resolver este problema.
En una jTable por un lado usando getColumClass del modelo indico que columna es tipo int. (sobre todo para el tema del órden por la columna)
Por otro lado con getTableCellRendererComponent pongo de un determinado color (y formato) la fila según el valor de la celda de una determinada columna
Mediante
El problema que tengo es que lo que es tipo entero no me toma el formato del RowsRenderer
En el ejemplo la primera línea debería tener en todas las celdas el formato rojo.
Si alguien lo tiene claro les agradezco me lo hagan saber.
Desde ya muchas gracias.

En una jTable por un lado usando getColumClass del modelo indico que columna es tipo int. (sobre todo para el tema del órden por la columna)
1
2
3
4
5
6
7
8
private DefaultTableModel modelo = new DefaultTableModel(){
@Override
public Class getColumnClass(int columna) {
if (columna == 0 ||columna == 4 ||columna == 5 ||columna == 6 || columna == 9)
return Integer.class; //Le dice al modelo que la primera columna es de tipo integer
return String.class; //Si no, es String
}
};
Por otro lado con getTableCellRendererComponent pongo de un determinado color (y formato) la fila según el valor de la celda de una determinada columna
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Override
public Component getTableCellRendererComponent (JTable table, Object value, boolean selected, boolean focused, int row, int column)
{
setBackground(Color.white);
table.setForeground(Color.black);
super.getTableCellRendererComponent(table, value, selected, focused, row, column);
if(table.getValueAt(row,columna).equals("E")){
this.setForeground(Color.RED);
this.setFont(new Font("Arial",Font.ITALIC,10));
}else if(table.getValueAt(row,columna).equals("_")){
this.setForeground(Color.BLACK);
}
return this;
}
Mediante
1
2
RowsRenderer rr = new RowsRenderer(8); //en la columna 8 están los “E” y los “_”
tabla.setDefaultRenderer(Object.class, rr);
El problema que tengo es que lo que es tipo entero no me toma el formato del RowsRenderer
En el ejemplo la primera línea debería tener en todas las celdas el formato rojo.
Si alguien lo tiene claro les agradezco me lo hagan saber.
Desde ya muchas gracias.

Valora esta pregunta


0