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

How to set width of ListBox with Java in Vaadin?

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

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

那是因为 setWidth() 方法派生自 HasSize 而不是 ComponentListBox 未实施 HasSize.

为了能够设置 ListBox 的宽度和高度,您可以制作自己的 Class 然后使用它来代替 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 相同的操作,因此不希望使用新的 class。
listbox.getElement().getStyle().set("width", "155px");

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