如何在Vaadin中使用Java设置ListBox的宽度?

时间:2018-12-18 09:48:54

标签: java vaadin vaadin-flow

自Vaadin Flow以来,ListBox是为ListSelect实现的。但是现在我有一个问题,因为我无法设置宽度。

private final ListBox<Absence> lbRequests=new ListBox<>();
lbRequests.setWidth("100%");//setWidth isn't exist

1 个答案:

答案 0 :(得分: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所提到的:如果只想为ListBox的一个实例修复此问题,并且不希望使用新类,则也可以执行与HasSize相同的操作。
listbox.getElement().getStyle().set("width", "155px");

编辑:此问题现已在master分支中修复,并且在下一版本中将不再存在。