2012-03-24 2 views
0

미리 정의 된 창 주위에 임의 개수의 공을 튀게하는 프로그램이 있습니다. 스윙 타이머를 사용하여 사용자가 설정 한 지연에 따라 볼을 업데이트합니다. 내 문제는 이것입니다. 공이 겸손한 상황보다 훨씬 더 지연됩니다. 기이 한 일은 다른 동작 (예 : 마우스 클릭 또는 마우스가 화면 주위를 움직이는 동작)이있을 경우 공이 부드럽게 움직이는 것입니다. 아무도이 원인을 알 수 있습니까?자바 스윙의 지연 그래픽

+5

* "이 문제를 일으키는 원인이 누구에게 있는지 아시겠습니까?"* 코드. 더 빨리 도움을 받으려면 [SSCCE] (http://sscce.org/)를 게시하십시오. –

+4

코드가 이벤트 발송 스레드를 차단하고 있습니다. 생성 된 시스템은'repaint()'이벤트가 아닙니다. 작업 예제 [here] (http://stackoverflow.com/q/9849950/230513)를 참조하십시오. – trashgod

답변

0

이상한 점은 다른 동작 (예 : 마우스 클릭 또는 마우스가 화면에서 움직이는 경우)이 있으면 부드럽게 움직이는 것입니다.

은 그 진술을 바탕으로, 나는 당신의 문제가 제대로 공을 표시하고 JPanel 또는 다른 java.awt.Component 서브 클래스에 repaint()를 호출되지 않는다는 생각합니다. 코드가 볼의 위치를 ​​변경할 때마다 Component.repaint()으로 전화해야합니다.

+0

추측을 위해 추측을 유지하는 것이 가장 좋습니다. –

0

이것이 도움이되는지 확실하지 않은 경우 : 이중 버퍼링을 고려 했습니까? (즉, '비 - 이미지'에서 모든 값 비싼 페인트 작업을 수행하고 완료되면 해당 이미지를 가시 영역에 복사하는 것).

+0

추측을 위해 추측을 유지하는 것이 가장 좋습니다. –