Jtable,为每个ROW使用不同的对齐方式

时间:2013-02-27 14:29:23

标签: java swing jtable alignment tablecellrenderer

我创建了一个表,需要将每个第二行对齐,并将每隔一行对齐为默认值。

我理解如何对齐行。这是我的默认渲染器

final DefaultTableCellRenderer centerRenderer = new DefaultTableCellRenderer();
centerRenderer.setHorizontalAlignment(DefaultTableCellRenderer.CENTER); 
final DefaultTableCellRenderer rightRenderer = new DefaultTableCellRenderer();
rightRenderer.setHorizontalAlignment(DefaultTableCellRenderer.RIGHT); 

2 个答案:

答案 0 :(得分:1)

您必须稍微调整渲染器并覆盖其getTableCellRendererComponent方法。类似的东西:

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);
    }
};

虽然创建一个扩展DefaultTableCellRenderer的适当类,但这样做会更好。

答案 1 :(得分:1)

请参阅Table Row Rendering

即使您的表使用多个渲染器而不创建自定义渲染器,也可以在一个位置更改对齐。