2012-01-27 5 views
2

JPanel이있는 ScrollPane이 있으며 JPanel에 약 200 개의 구성 요소를 추가합니다. Vertical-Slider가 특정 구성 요소로 이동하기를 원합니다.다시 칠하기 전까지 기다리십시오. 구성 요소가 완료되었습니다.

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()에서 올바른 위치로 슬라이더를 이동 라인을 넣어이 작동합니다. 시간부터이 일을 해준 많은 시간들 감사합니다! 추신 : 조금 더 대답 다음 invokeLater 메서드 호출 좋을 것이다; 다음 번에;) – Leon

관련 문제