滚动时,JScrollPane中的JTable不会自动重绘

时间:2012-01-26 09:49:12

标签: java swing jtable jscrollpane concurrency

我有一个JScrollPane,其中包含JTable。该表是从数据库查询中动态填充的。这一切都很好,桌子正在填充,但它比可见窗口宽。

我可以看到表格的左侧部分,我需要向右滚动才能看到它的右端。当我这样做时,隐藏的表(右端)的部分是模糊的。然后我停止滚动并等待几秒钟,然后重新粉刷,看起来很好。我向后滚动,一切都很好 - 没有模糊。

  • 我想我错过了一些强制重绘 - 但不应该JScrollPane自动处理它?<​​/ li>
  • 如何摆脱这种影响?

以下是我构建它的方法(我不会粘贴所有代码,因为它基本上可以工作):

    jScrollPane1.setAutoscrolls(true);
    jScrollPane1.getViewport().setLayout(borderLayout2);        
    jScrollPane1.getViewport().add(table, BorderLayout.CENTER);
    this.add(jScrollPane1, BorderLayout.CENTER);

1 个答案:

答案 0 :(得分:3)

从未见过这样的工件,可能是因为您以完全错误的方式添加表。将代码段的前三行替换为:

jScrollPane1.setViewportView(table);