Reputation: 1
I have created a table and need to align every second row to the right, and every other row to default.
I understand how to align the rows. This is my default renderer
final DefaultTableCellRenderer centerRenderer = new DefaultTableCellRenderer();
centerRenderer.setHorizontalAlignment(DefaultTableCellRenderer.CENTER);
final DefaultTableCellRenderer rightRenderer = new DefaultTableCellRenderer();
rightRenderer.setHorizontalAlignment(DefaultTableCellRenderer.RIGHT);
Upvotes: 0
Views: 586
Reputation: 324108
See Table Row Rendering.
This will allow you to change the alignment in one place even if your table uses multiple renderers and without creating a custom renderer.
Upvotes: 1
Reputation: 8311
You'll have to tweak the renderer a little and override its getTableCellRendererComponent
method. Something like:
DefaultTableCellRenderer renderer = new DefaultTableCellRenderer() { public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { if (r % 2 == 0) { setHorizontalAlignment(SwingConstants.LEFT); } else { setHorizontalAlignment(SwingConstants.RIGHT); } return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); } };
Although creating your own proper class that extends DefaultTableCellRenderer
and does this would be a better approach.
Upvotes: 1