package com.revolsys.swing.table;
import java.awt.Component;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableCellRenderer;
public class NumberTableCellRenderer extends DefaultTableCellRenderer {
/**
*
*/
private static final long serialVersionUID = 1L;
private final String format;
public NumberTableCellRenderer() {
this("#,###");
}
public NumberTableCellRenderer(final String format) {
this.format = format;
}
private NumberFormat getFormat() {
return new DecimalFormat(this.format);
}
@Override
public Component getTableCellRendererComponent(final JTable table, Object value,
final boolean isSelected, final boolean hasFocus, final int row, final int column) {
if (value instanceof Number) {
final Number number = (Number)value;
value = getFormat().format(number);
}
final Component label = super.getTableCellRendererComponent(table, value, isSelected, hasFocus,
row, column);
setHorizontalAlignment(SwingConstants.RIGHT);
return label;
}
}