Hola a todos! Bueno, estuve buscando este tema en el foro pero no encontre nada, asiq aca les paso mi problema.. Estoy usando netbeans.
Tengo una tabla en la que guardo ciertos datos. Tiene 4 columnas, y en una de ellas (la columna 1), pinto de color rojo o verde los valores de acuerdo a si es un ingreso o egreso..
Para eso utilizo esta clase
DefaultTableCellRenderer:
Cita: public class Render extends DefaultTableCellRenderer{
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column){
JLabel label = (JLabel) super.getTableCellRendererComponent (table, value, isSelected, hasFocus, row, column);
if(column == 1){
float val = Float.parseFloat(value.toString());
if(val < 0){
label.setForeground(Color.RED);
label.setText(String.valueOf(val * (-1)));
}
else label.setForeground(Color.GREEN);
label.setOpaque(true);
label.setHorizontalAlignment(SwingConstants.RIGHT) ;
}
return label;
}
}
Y desde aca le aplico el render a la tabla.. Esto lo va haciendo a medida que voy cargando los datos en la tabla, con un while:
Cita: tabla.setDefaultRenderer(Float.class, render);
Esto me funciona bien, pero lo que yo quiero hacer ahora es alinear a la derecha el texto de la columna 2 pero no se como hacerlo.. Probe poniendo una condicion:
if(colum == 2) label.setHorizontalAlignment(SwingConstants.RIGHT) ;
pero no me funciona, hace cualquier cosa..
Si alguien sabe alguna manera de hacerlo, les agredeceria..!
Saludos!