有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Vaadin如何拥有两列数据(带字段的Gridlayout和带包装文本的标签数据)

我试图创建一个CustomComponent,其中我有两列(可能有四列),其中两列是Labels的行。第一列是标识符,如“Firstname:”、“Lastname:”等,第二列是标识符的实际值,如“John”、“Smith”等

我使用了一个GridLayout,这样数据就可以很好地排列起来(例如,约翰和史密斯在下一行)

我遇到的问题是,我希望第二列占据剩余的空格宽度,当文本太长时,将其换行到下一行。例如,如果我有一个注释Label,这是一个段落,我想把文本包装起来,但它只是一直离开屏幕

现在我明白了the ^{} needs to have a defined width to be able to wrap the text但是我不知道如何使用它使标签中的文本在网格中换行。我已经想尽办法了

我的代码是:

GridLayout gridLayout = new GridLayout();
gridLayout.setColumns(2);
gridLayout.setColumnExpandRatio(0, 1f);

gridLayout.addComponent(new Label("Firstname"));
gridLayout.addComponent(firstnameValueLabel);
gridLayout.addComponent(new Label("Lastname"));
gridLayout.addComponent(lastnameValueLabel);
// and so on.

VerticalLayout verticalLayout = new VerticalLayout();
verticalLayout.addComponent(myHeaderComponent);
verticalLayout.addComponent(gridLayout);

我已经尝试了所有我能想到的方法来进行valueLabelfirstnameValueLabel等)文本包装,但似乎没有任何效果。我试图给GridLayoutVerticalLayout分配特定的大小,而不是100%,以此类推,但没有成功。我使用VerticalLayout是因为我在数据之上有额外的东西

也许使用GridLayout不是最好的选择,也许有更好的方法来排列不是字段的表单。虽然FormLayout将是完美的,但它似乎只适用于输入字段

在任何情况下,我应该如何实现这一点,以便Label文本包装


共 (1) 个答案