2012-01-26 113 views
0

我有一個JScrollPane,它包含JTable。該表是從數據庫查詢動態填充的。這一切都工作正常,表格正在填充,但它比可見窗口更寬。JScrollPane中的JTable在滾動時不會自動重畫

我可以看到表格的左邊部分,我需要向右滾動才能看到它的右端。當我這樣做時,隱藏的桌子的一部分(右端)變得模糊。然後我停止滾動,等待幾秒鐘,然後重新粉刷並看起來很好。我向左滾動,一切正常 - 沒有模糊。

  • 我想我錯過了一些強制重畫 - 但不應該JScrollPane自動處理它?
  • 我該如何擺脫這種影響?

這是我如何構建它(我不會粘貼的所有代碼,因爲它的基本工作原理):

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

爲了更快地獲得更好的幫助,請發佈[SSCCE](http://sscce.org/)。 –

+0

我的兩個美分,這個問題已經沒有與JTable和JScrollPane的東西,但與'該表是動態填充從數據庫查詢' – mKorbel

回答

3

從來沒有見過這樣的神器,可能是由於您要添加表以完全錯誤的方式。將您的代碼片段的前三行替換爲:

jScrollPane1.setViewportView(table); 
+0

@mKorbel和可能關閉EDT :-) – kleopatra

+0

+1,1)對於JTable 2)I嘗試你的最新的孩子,沒有任何標準的鞦韆方法+老物質的bug,3)請有一些road_plan或當前版本是我需要/想要的一切:-) – mKorbel

+0

@mKorbel嗯..不太清楚你的意思,所以只是拋出了一個隨機的評論:SwingX 1.6.3已經推出了狀態,這個消息的公佈應該會是這些日子之一:-) – kleopatra