setColumnWidth() не работает
Я разрабатываю веб-приложение в рамках Vaadin. У меня есть таблица с 14 столбцами. В последнем столбце находятся три иконки, и проблема, с которой я столкнулся, заключается в том, что, как в половине случаев, когда таблица отображается, самый дальний справа значок будет "разрезан пополам" по вертикали. Чтобы избежать этой проблемы, я попытался установить фиксированную ширину для этого столбца, что, я думаю, устранит проблему, однако, ничего не происходит..
Я использую традиционный подход:
simCardTable.setColumnWidth(actionColumn, 135);
Однако независимо от того, какое значение я установил в качестве ширины столбца, столбец остается неизменным... Кто-нибудь знает, почему это так? Это потому, что это последний столбец, который нужно добавить, и, следовательно, нет места, чтобы сэкономить..?
Кстати, это единственный столбец, для которого я установил определенную ширину, все восстанавливаемые столбцы имеют стандартную ширину, определяемую шириной заголовка столбца или содержимого ячейки.
Любая помощь будет очень ценится!
1 ответ
Как я понял из вашего вопроса ("Последний столбец содержит три иконки"), вы используете 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;
}
};