如何使 vaadin 网格单元格中的文本换行

How to make text in vaadin Grid cell to wrap

我需要让 Vaadin 8 Grid 单元格文本换行。我试图在 Vaadin 论坛中关注此 link。 https://vaadin.com/forum/thread/16908210/vaadin-8-grid-wrap-long-lines

我的网格仅在每个单元格中包含字符串。

我有一个 StyleGenerator class 这样的:

public class MyGridStyleGenerator<ArrayList> implements StyleGenerator {        
    public String apply(Object item) {          
        return ".m-grid-cell-wrapper";
    }
}

我正在从 Vaadin 6 转换,所以我仍然使用旧主题 ("../reindeer/legacy-styles.css")

在我的 styles.css 文件中,有:

.m-grid-cell-wrapper {
   word-wrap: break-word;
   white-space: normal;
}

在创建网格的 class 中,我有:

Grid<List<String>> table = new Grid<>("My Test Grid");
//skip setting items code since the cell content shows up fine.
MyGridStyleGenerator style = new MyGridStyleGenerator();
table.setStyleGenerator(style);
table.setBodyRowHeight(35); // more than two lines of text height

我使用 Grid.Column 的 setWidth() 将每个列宽设置为固定值,以便可以在给定的 window.

中显示更多列

问题是当显示 Grid 时,长度超过列宽的文本不会换行。
我错过了什么?
感谢您的任何建议。

顺便说一句,Stack Overflow 中还有一个关于这个主题的问题,答案是使用 label.setStyleName(ValoTheme.LAYOUT_HORIZONTAL_WRAPPING);
我没有 Label 也没有使用 Valo 样式。

控制网格单元格的 CSS class 是 .v-grid-cell,所以我在我的 styles.css 文件中添加了以下内容。

.v-grid-cell {
white-space: normal;  }

这导致网格单元格中的文本换行。