1

我正在 Vaadin 框架中开发一个 web 应用程序。我有一个 14 列的表。最后一列包含三个图标,我遇到的一个问题是,在呈现表格的一半时间里,最右边的图标将被垂直“切成两半”。为了避免这个问题,我尝试为该列设置一个固定宽度,我认为这会消除该问题,但是,没有任何反应。

我正在使用常规方法:

simCardTable.setColumnWidth(actionColumn, 135);

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

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

任何帮助将不胜感激!

4

1 回答 1

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;
                }
            };
于 2011-10-14T17:37:08.413 回答