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