setColumnWidth()似乎不起作用

时间:2011-10-14 08:22:02

标签: java vaadin column-width

我正在开发Vaadin框架中的Web应用程序。 我有一个14列的表。最后一列有三个图标,我遇到的一个问题就是表格的一半时间,最右边的图标将被垂直“切成两半”。为了避免这个问题,我试图为这个列设置一个固定的宽度,我认为可以根除这个问题,然而,没有任何反应..

我正在使用传统方法:

simCardTable.setColumnWidth(actionColumn, 135);

但是,无论我设置的列宽是什么值,列保持不变...有谁知道这是为什么?是因为它是要添加的最后一列,因此没有空间可供使用..?

顺便说一句,这是我设置特定宽度的唯一列,所有恢复列都具有由列标题宽度或单元格内容指定的标准宽度。

任何帮助都将非常感谢!

1 个答案:

答案 0 :(得分:2)

正如我从您的问题(“最后一列包含三个图标”)中所理解的那样,您使用ColumnGenerator创建最后一列,并带有图标。如果我是对的,这意味着你创建了一些带有这个图标的自定义布局,在这种情况下你应该这样做:

final ColumnGenerator generator = new ColumnGenerator() {
            private static final long serialVersionUID = 1L;

            @Override
            public Component generateCell(Table source, final Object itemId, Object columnId) {
                final HorizontalLayout layout = new HorizontalLayout();
                layout.setSizeFull();

                Embedded icon1 = new Embedded();
                Embedded icon2 = new Embedded();
                Embedded icon3 = new Embedded();

                //Add some themeresource to embedded components

                //Do some listners to this icons

                layout.addComponent(icon1);
                layout.addComponent(icon2);
                layout.addComponent(icon3);

                //Set column with
                setColumnWidth(columnId, 100);

                return  layout;
                }
            };