gpt4 book ai didi

width - 列宽根据内容宽度的 Vaadin 表

转载 作者:行者123 更新时间:2023-12-01 10:06:32 24 4
gpt4 key购买 nike

在 Vaadin 中,Horizo​​ntalLayout 会为每个组件提供其所需的准确空间,只要有足够的空间即可。

然而,在使用 BeanItemContainer 创建的表中,所有列的宽度都相同。由于表格内容是动态加载的,每次的宽度都不一样,而且不同的 PC 有不同的字体大小,我们不想指定一个以像素为单位的固定宽度。

我们如何让行的行为像 html 表格或 Horizo​​ntalLayout,因为它为每一行提供正确的宽度,不多也不少?

最佳答案

在我看来,您正在寻找展开比率。它的作用类似于 Horizo​​ntalLayout 的展开比例。

看看https://vaadin.com/api/com/vaadin/ui/Table.html#setColumnExpandRatio%28java.lang.Object,%20float%29获取更多信息。

Table oTable = new Table();
oTable.addContainerProperty("First name", String.class, null);
oTable.addContainerProperty("Last name", String.class, null);
oTable.addContainerProperty(YEAR_PROPERTY, Integer.class, null);

oTable.addItem(new Object[] { "Nicolaus","Copernicus",new Integer(1473) }, new Integer(1));
oTable.addItem(new Object[] { "Tycho", "Brahe", new Integer(1546) }, new Integer(2));
oTable.addItem(new Object[] { "Giordano","Bruno", new Integer(1548) }, new Integer(3));
oTable.addItem(new Object[] { "And this is a very very long cell", "Newton", new Integer(1643) }, new Integer(4));

oTable.setSizeFull();
oTable.setColumnExpandRatio(YEAR_PROPERTY, 1.0f);

编辑:如果您为一个单元格(例如最后一个单元格)设置扩展比率,则所有其他单元格只占用所需的空间。这可能是满足您要求的解决方法。

如果您注释掉最后添加的项目,您会看到第一列只占用所需的空间。

关于width - 列宽根据内容宽度的 Vaadin 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9905914/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com