I am having a problem with editing the DefaultTableCellRenderer
.
I would like to right align just the 2nd column in my table. However, the code below right aligns all the columns, and not just the 2nd one!
Can anyone see where I am going wrong?
for (int i=0; i < tblMenu.getModel().getColumnCount(); i++)
{
DefaultTableCellRenderer renderer =
(DefaultTableCellRenderer) tblMenu.getCellRenderer(i, 1);
renderer.setHorizontalAlignment(JTextField.RIGHT);
}
You can override the default renderer on your table with an anonymous inner class. Something like the following (untested) code might work:
table.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() {
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
if (column == 2) {
setHorizontalAlignment(JTextField.RIGHT);
}
return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
}
});