2012-01-27 4 views
2

JPanelを含むScrollPaneがあり、JPanelには約200個のコンポーネントが追加されています。私はVertical-Sliderを特定のComponentに移動したいと思っています。 しかし、問題は、私が呼び出していたときにということである。塗りつぶすまで待ってください。コンポーネントが完成しました

myButton.scrollRectToVisible(myButton.getBounds()); 

getBounds()は明らかに要素がまだ塗装されていない0

に戻ってくれ幅と高さを与えます。 repaint()メソッドがすべて完了してから、scrollRectToVisible()を実行できるようになるまで、どうすればいいですか?

編集:私は私のコードの簡単な例を与えた場合

多分それは助ける:

addElementsToPanel(); //function where I add Elements to the Panel 

myJPanel.revalidate(); 
myJPanel.repaint(); 

myButton.scrollRectToVisible(myButton.getBounds()); 
+0

[SSCCE](http://sscce.org/)を投稿するとすぐに役立ちます。 –

+0

'ComponentEvent.COMPONENT_SHOWN'イベントを待ってみましたか? – Viruzzo

+0

いいえ、私はいません。これを行う方法? – Leon

答えて

4

SwingUtilities.invokeLater()

+0

これは素晴らしい作品私はSwingUtilities.invokeLater()の右の位置にスライダを移動する行を配置し、これが動作します。私は時間からこれに取り組んだ多くの時間をありがとう! PS:もう少し答えれば、invokeLaterメソッド呼び出しがうまくいくはずです。次回 ;) – Leon

関連する問題