我有一个vaadin Table,想将所有具有数字类类型(例如BigDecimalIntegerDouble)的列对齐。

可以使用以下命令为每个表格的列ID设置对齐方式:
table.setColumnAlignment("username", Align.RIGHT);
但是我更喜欢为每个类类型设置对齐方式。那可能吗?

最佳答案

您可以覆盖setVisibleColumns方法:

new Table() {

    @Override
    public void setVisibleColumns(Object... visibleColumns) {
        super.setVisibleColumns(visibleColumns);
        for (Object propertyId : visibleColumns) {
            setPropertyAlignment(propertyId);
        }
    }

    private void setPropertyAlignment(Object propertyId) {

        Class<?> clazzProperty = getContainerDataSource().getType(propertyId);
        if (clazzProperty.isAssignableFrom(Number.class)) {
            super.setColumnAlignment(propertyId, Align.RIGHT);
        }
        else {
            super.setColumnAlignment(propertyId, Align.LEFT);
        }

    }
}

关于java - 在vaadin表中按类类型对齐所有值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23779499/

10-08 23:01