java - Vaadin 表一直显示滚动条

标签 java vaadin

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

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

以下是我经过几个小时的调试后收集到的一些信息:

  1. 有时,图标/图像/等。未加载并显示为现金,有时它们是。你猜怎么着,这也是打开和关闭滚动条,尽管图像仍然显示。
  2. 每列的宽度有时会多几个像素 - 这就是水平滚动条出现的原因,我认为这也是垂直滚动条出现的原因(因为水平滚动条占用了表格高度的一些像素)<
  3. 我试过在填表后调用requestRepaint,甚至是父组件上的requestRepaintAll,还有它的parent,还有它的parent等等...
  4. 我试过以百分比设置每列的宽度。 100000。)我想我已经尝试了 4 到 100000 之间的所有其他东西。

我一定是遗漏了什么。很多人都有这个问题,我直接在 vaadin 页面上找到了很多线程,但没有 THIS-DEFINITELY-WORKS 解决方案。

编辑代码:

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) 填充行。

最佳答案

我有同样的问题 - 烦人的滚动条。我使用我自己的主题和覆盖 css 样式修复了这个问题。

要在 Application 的实现中这样做,您必须调用 setTheme("mytheme") 设置主题。

然后当你定义表格时,你可以使用你自己的风格(将有问题的表格与其他表格区分开来):

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

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

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

关于java - Vaadin 表一直显示滚动条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9310076/

相关文章:

Java 7 的 nio.file 包在创建新文件时非常慢

Java:我如何知道我的 TableModel 是否有 TableModelListener?

eclipse +tomcat 8.0 : 404 even after "use tomcat installation"

java - 将 vaadin 应用程序部署到 tomcat

java - 如何告诉 Proguard 跨构建维护相同的混淆名称

java - 如何处理算法?哪个是首选方式?

java - 图形用户界面 : Highlight the Path It Takes for A Maze?

java - 如何使用 Vaadin (FieldGroup) 绑定(bind)来绑定(bind)复杂类型的集合/集合?

java - Vaadin 将新列添加到现有表

java - 用于字符串列表的最佳 Vaadin 组件