setColumnWidth () не работает - PullRequest
       23

setColumnWidth () не работает

1 голос
/ 14 октября 2011

Я разрабатываю веб-приложение в рамках Vaadin. У меня есть таблица с 14 столбцами. В последнем столбце содержатся три значка, и проблема, с которой я столкнулся, заключается в том, что, как в половине случаев, когда таблица отображается, самый дальний справа значок будет «разрезан пополам» по вертикали. Чтобы избежать этой проблемы, я попытался установить для этого столбца фиксированную ширину, которая, по-моему, устранит проблему, однако ничего не происходит ..

Я использую традиционный подход:

simCardTable.setColumnWidth(actionColumn, 135);

Однако, независимо от того, какое значение я установил в качестве ширины столбца, столбец остается неизменным ... Кто-нибудь знает, почему это так? Это потому, что это последний столбец, который нужно добавить, и поэтому нет места, чтобы сэкономить ..?

Кстати, это единственный столбец, для которого я установил определенную ширину, у всех восстанавливаемых столбцов есть стандартная ширина, определяемая шириной заголовка столбца или содержимого ячейки.

Любая помощь будет принята с благодарностью!

1 Ответ

2 голосов
/ 14 октября 2011

Как я понял из вашего вопроса («Последний столбец содержит три значка»), вы используете 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;
                }
            };
...