我正在Vaadin框架中开发Web应用程序。
我有一张有14列的桌子。最后一列包含三个图标,而我遇到的一个问题是,像渲染表格一半的时间一样,最右边的图标会垂直“切成两半”。为避免此问题,我尝试为该列设置固定宽度,以消除该问题,但是什么也没有发生。
我正在使用常规方法:
simCardTable.setColumnWidth(actionColumn, 135);
但是,无论我将列宽设置为什么值,列都保持不变...有人知道为什么吗?是因为它是最后一列要添加的内容,所以没有剩余空间了吗?
顺便说一句,这是我唯一设置了特定宽度的列,所有还原列的标准宽度均由列标题的宽度或单元格内容指定。
任何帮助将不胜感激!
最佳答案
据我从您的问题(“最后一列包含三个图标”)中了解到,您可以使用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;
}
};
关于java - setColumnWidth()似乎不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7764913/