2010-06-13 48 views
3

我有一個具有多個子級別組件的JPanel,也有一個JScrollPane。我將一個焦點偵聽器放在一些子組件上,以便爲這些組件添加一些行爲,但是我也希望在獲得焦點時將該組件滾動到JPanel的視口中。需要來自瀏覽器DOM的「scrollIntoView」的Java Swing等效

我的問題是,有沒有人有一個通用的功能來做到這一點,類似於瀏覽器的DOM函數「scrollIntoView」?我已經嘗試通過對JComponent.scrollRectToVisible的各種輸入進行混淆,但我想我還沒有弄清楚這個魔術詞。

在此先感謝。

回答

4

顯而易見的是,調用scrollRectToVisible就是JScrollPane,它可以很好的編譯,但不會做你想做的。您必須在滾動窗格的視口中包含的對象上調用scrollRectToVisible。該代碼應該看起來有點像:

java.awt.Component focusedComponent = evt.getComponent(); 
panel.scrollRectToVisible(focusedComponent.getBounds(null)); 
repaint(); 
+0

完美工作。那是我以爲我嘗試過的事情之一,但我想我錯了。謝謝Eugener! – BCG 2010-06-14 01:20:14