【问题标题】:JTable in a JScrollPane doesn't automatically repaint when scrollingJScrollPane 中的 JTable 在滚动时不会自动重绘
【发布时间】:2012-01-26 09:49:12
【问题描述】:

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

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

  • 我想我错过了一些强制重绘 - 但 JScrollPane 不应该自动处理它吗?
  • 如何消除这种影响?

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

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

【问题讨论】:

  • 如需尽快获得更好的帮助,请发帖SSCCE
  • 我的两分钱,这个问题与 JTable 和 JScrollPane 无关,而是与 The table is dynamically populated from a database query

标签: java swing jtable jscrollpane concurrency


【解决方案1】:

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

jScrollPane1.setViewportView(table);

【讨论】:

  • @mKorbel 可能不在美国东部时间 :-)
  • +1, 1) 用于 JTable 2) 我尝试了你最新的孩子,并且没有任何标准 Swing 方法 + 旧物质的错误,3) 请有一些 road_plan 或当前版本是我所需要的/想要:-)
  • @mKorbel 嗯 .. 不太清楚你的意思,所以随便发表一个评论:SwingX 1.6.3 已推出状态,公告应该在这些日子里发布:-)
猜你喜欢
  • 2013-08-06
  • 2014-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多