java - Vaadin Grid 如何在列中换行长文本

标签 java grid vaadin

我有一个包含 7 列的 Vaadin 网格:

Grid grid = new Grid<>();
grid.setSizeFull();

grid.addColumn(User::getUserName).setCaption("Name").setExpandRatio(2);
grid.addColumn(User::getLastName).setCaption("Last Name").setExpandRatio(1);                    
grid.addColumn(User::getAge).setCaption("Age").setExpandRatio(2);
grid.addColumn(User::getWork).setCaption("Work").setExpandRatio(1);
grid.addColumn(User::getJobTitle).setCaption("Job Title").setExpandRatio(1);
grid.addColumn(User::getSalary).setCaption("Salary").setExpandRatio(1);
grid.addColumn(User::getOther).setCaption("Other").setExpandRatio(1); 

我需要以某种方式设置列宽度 - 所有 7 个列都将显示在屏幕上。 现在,使用我的代码,它的工作方式是,如果任何列单元格的文本内容非常长,则最后一列不会显示在屏幕上,并且屏幕必须水平滚动。

我尝试使用方法setWidth(),由于它以像素为单位, GridView 在不同的浏览器和屏幕上可能会有所不同。

我需要的是确保我的网格在不同的屏幕和不同的单元格值上看起来相同。

最佳答案

最近我也遇到了同样的情况,这是我的解决方案:

网格配置

Grid<Item> gridItem = new Grid<>();
gridItem.setRowHeight(50.0);

列配置

gridItem.addComponentColumn(item -> {
            Label label = new Label();
            label.setValue(item.getText());
            label.setWidthUndefined();
            label.setStyleName(ValoTheme.LAYOUT_HORIZONTAL_WRAPPING);
            return label;
        })
        .setCaption("Item")
        .setWidth(380.0);

结果:

enter image description here

关于java - Vaadin Grid 如何在列中换行长文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45330058/

相关文章:

html - 具有相同高度元素的响应式网格(从 3 列开始,减少到 2 列,然后是 1 列)?

java - 将 spring-boot-starter-security 与 Vaadin 7 集成

java - Vaadin 7 Refresher 插件不工作

java - Vaadin 和数据模型。我如何获取标签字段使用的属性数据模型实现存储的值???瓦丁

grid - 剑道 UI 网格卡住列

java - MySQL - SQLException : No suitable driver found for jdbc:derby://

java - 在 Java 中实现 Prim 的 MST

项目中的 Java keystore

html - 如何在我的网格中正确对齐我的开放时间?

java - 如何声明和关闭InputStream?