2013-08-21 34 views
2

我要求在網格窗格中並排排列N個表格,並且所有jtables的scrollpanes的高度保持不變。現在我想同步所有jtable的滾動,意思是如果我滾動第一個jtable,那麼剩下的jtables應該自動滾動相同的數量。在java swing中同步滾動N個jtables

任何人都有這個想法嗎?

回答

8

請嘗試分享滾動條的模型。喜歡的東西:

JScrollPane scrollPane1 = new JScrollPane(...); 
JScrollPane scrollPane2 = new JScrollPane(...); 
BoundedRangeModel model scrollPane1.getVerticalScrollBar().getModel(); 
scrollPane2.getVerticalScrollBar().setModel(model); 
+0

感謝@camickr ..代碼是非常有用的 –

+0

camickr - 如何停止共享共享後,所有n表模型的模型。其實我在屏幕上有1個同步複選框。點擊複選框,我必須同步n個表格,然後取消勾選複選框,我必須取消共享所有n個表格的模型。那是我的問題。你有什麼想法嗎? –

+0

創建並向滾動條添加一個新的BoundedRangeModel。 – camickr

0

獲取您的滾動條的滾動條(getHorizontalScrollBar()getVerticalScrollBar())。然後從這些捕捉事件。發生事件時,使用setViewPosition()(從getViewPosition())修改與滾動窗格關聯的視口(getViewport())。