Vaadin表不断显示滚动条

时间:2012-02-16 10:58:54

标签: java vaadin

我在一些布局中有一个Table组件,我不希望它显示任何滚动条。

该表将始终只显示25行,宽度应始终为720px。但是,该表一直显示垂直和水平滚动条,我无法弄清楚如何。有趣的是(虽然我现在哭得很厉害),有时滚动条会消失。当我不断刷新页面时,有时它们会消失,一切都很好。

以下是经过数小时调试后收集的几个信息:

  1. 有时,图标/图片/等。未加载并以现金显示,有时它们是。并猜测是什么,这也是打开和关闭滚动条,虽然图像仍然显示。
  2. 每列的宽度有时会多几个像素 - 这就是水平滚动条显示的原因,我认为这也是垂直滚动条显示的原因(因为水平从表格的高度获取了一些像素)
  3. 我在填充表后尝试调用requestRepaint,甚至在父组件及其父组件及其父组件等上调用requestRepaintAll ...
  4. 我尝试以百分比设置每列的宽度。 100000.)我想我已经尝试了4到100000之间的所有其他事情。
  5. 我一定错过了什么。很多人都有这个问题,我在vaadin页面上直接找到了很多线程,但是没有这个确定无效的解决方案。

    编辑代码:

    Table t = new Table();
    t.setWidth("720px");
    t.setImmediate(true);
    t.setSelectable(true);
    
    // Headers
    t.addContainerProperty("fullName", String.class,  null, "Meno", null, null);
    t.setColumnExpandRatio("fullName", 22);
    
    t.addContainerProperty("dateOfBirth", Date.class,  null, "Narodenie", null, null);
    t.setColumnExpandRatio("dateOfBirth", 18);
    
    t.addContainerProperty("lastYearCosts", BigDecimal.class,  null, "Náklady", null, null);
    t.setColumnExpandRatio("lastYearCosts", 10);
    
    t.addContainerProperty("lastYearBalance", BigDecimal.class,  null, "Saldo", null, null);
    t.setColumnExpandRatio("lastYearBalance", 10);
    
    t.addContainerProperty("activeClient", ComparableBooleanEmbeddedIcon.class,  null, "", new ThemeResource("icons/icon-app-header-medipartner.png"), Table.ALIGN_CENTER);
    t.setColumnExpandRatio("lastYearBalance", 8);
    
    t.addContainerProperty("dmsCount", String.class,  null, "", new ThemeResource("icons/icon-app-header-heart.png"), null);
    t.setColumnExpandRatio("dmsCount", 8);
    
    t.addContainerProperty("authCount", String.class,  null, "", new ThemeResource("icons/icon-app-header-warnings.png"), null);
    t.setColumnExpandRatio("authCount", 8);
    
    t.addContainerProperty("book", CssLayout.class,  null, "Objednať", null, Table.ALIGN_CENTER);
    t.setColumnExpandRatio("book", 16);
    

    然后,我只是用addItem(Object [] item)填充行。

3 个答案:

答案 0 :(得分:8)

我有同样的问题 - 恼人的滚动条。我使用自己的主题并重写css样式来修复它。

要在Application的实施中执行此操作,您必须设置主题调用setTheme("mytheme")

然后,当您定义表时,您可以使用自己的样式(以区分有问题的表与其他表):

Table table = new Table()
table.addStyleName("mystyle")

然后你必须在VADIN/themes/mytheme/styles.css中定义自己的css样式:

@import "../reindeer/styles.css";
.v-table-mymodel .v-scrollable {
    overflow: hidden;
}

答案 1 :(得分:3)

你应该使用

table.setPageLength(0);

它将删除vaadin表中的所有滚动条。

答案 2 :(得分:1)

grid.recalculateColumnWidths()