Как установить ширину ListBox с Java в Vaadin?

Начиная с Vaadin Flow ListBox реализован для ListSelect. Но теперь у меня проблема, потому что я не могу установить ширину.

private final ListBox<Absence> lbRequests=new ListBox<>();
lbRequests.setWidth("100%");//setWidth isn't exist
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
0
224
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это потому, что метод setWidth() происходит от HasSize, а не от Component. ListBox не реализует HasSize.

Чтобы иметь возможность устанавливать ширину и высоту ListBox, вы можете создать свой собственный класс, который затем будете использовать вместо ListBox:

public class SizedListBox<T> extends ListBox<T> implements HasSize {
    public SizedListBox(){
        super();
    }
}

SizedListBox<Absence> lbRequests = new SizedListBox<>();
lbRequests.setWidth("100%"); // exists and works, I tested it

Как упомянул @JensJansson: вы также можете сделать то же самое, что и HasSize, если хотите исправить это только для одного экземпляра ListBox и, следовательно, не хотите использовать новый класс. listbox.getElement().getStyle().set("width", "155px");

Редактировать: Эта проблема теперь уже исправлена ​​в основной ветке и больше не будет существовать в следующем выпуске.

Я собирался ответить точно так же, но ты был быстрее! Я создал для этого билет: github.com/vaadin/vaadin-list-box-flow/issues/38 Обратите внимание, что вы также можете сделать то же самое, что и HasSize, если хотите исправить это только для одного экземпляра ListBox и, следовательно, не хотите использовать новый класс. listbox.getElement().getStyle().set("width", "155px");

Jens Jansson 18.12.2018 11:55

@JensJansson Я тоже пишу сообщение на форуме (ссылка здесь), потому что подозреваю, что есть причина, по которой HasSize не реализован. в примеры java ListBox они имеют полную ширину, но не с использованием стиля ширины

kscherrer 18.12.2018 11:59

Проблема была исправлена ​​и довольно быстро слита в мастеринг. Мастер теперь может устанавливать размеры, и методы будут доступны в следующем выпуске. github.com/vaadin/vaadin-list-box-flow/issues/38

Jens Jansson 18.12.2018 14:35

Другие вопросы по теме