TableCellRenderer
Anybody know why the number column,Value1 andValue2 are not rendered properly?
import java.text.*;
import javax.swing.*;
import javax.swing.table.*;
publicclass JTableTest{
private JTable table;
public JTableTest(){
String[] columnNames ={"Name","Value1","Value2"};
Object[][] data ={
{"X",new Integer(12500),new Integer(13000)},
{"Y",new Integer(36000),new Integer(25000)},
{"Z",new Integer(21500),new Integer(20000)}
};
JFrame frame =new JFrame("Testing JTable Renderer");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
table =new JTable(data, columnNames);
table.setDefaultRenderer(java.lang.Number.class,
new NumberCellRenderer(SwingConstants.RIGHT));
frame.getContentPane().add(table);
frame.pack();
frame.setVisible(true);
}
publicstaticvoid main(String[] a){
new JTableTest();
}
}
class NumberCellRendererextends DefaultTableCellRenderer{
protectedint align;
protectedstatic NumberFormat formatter = NumberFormat.getInstance();
public NumberCellRenderer(int align){
super();
this.align = align;
}
protectedvoid setValue(Object value){
if (value !=null){
formatter.setGroupingUsed(true);
formatter.setMaximumIntegerDigits(11);
formatter.setMaximumFractionDigits(0);
formatter.setMinimumFractionDigits(0);
setText(formatter.format(value));
}else{
super.setValue(value);
}
setHorizontalAlignment(align);
}
}

