我正在开发Vaadin框架中的Web应用程序。 我有一个14列的表。最后一列有三个图标,我遇到的一个问题就是表格的一半时间,最右边的图标将被垂直“切成两半”。为了避免这个问题,我试图为这个列设置一个固定的宽度,我认为可以根除这个问题,然而,没有任何反应..
我正在使用传统方法:
simCardTable.setColumnWidth(actionColumn, 135);
但是,无论我设置的列宽是什么值,列保持不变...有谁知道这是为什么?是因为它是要添加的最后一列,因此没有空间可供使用..?
顺便说一句,这是我设置特定宽度的唯一列,所有恢复列都具有由列标题宽度或单元格内容指定的标准宽度。
任何帮助都将非常感谢!
答案 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;
}
};