문제

목록이 있는데 각 항목에는 많이 업데이트 될 수있는 유전자 태그 코드를 포함하여 여러 항목이 있습니다.항목 중 하나가 JProgressBar를 업데이트 할 때마다 목록의 JProgressBar는 다음을 사용하여 가시 범위로 스크롤하려고합니다. 라코 디스

스크롤이 디스패치 스레드에서 수행되는지 확인하려고합니다. 다시 칠하는 동안 문제가 스크롤되는 것이 문제라고 생각했기 때문입니다.그럼에도 불구하고 실제로 활동이 활성화되면 일부 목록 항목이 뷰포트 외부에 페인트되어 ListDataListener 외부에있는 항목을 덮어 쓰는 문제가 있습니다.노출 이벤트를 강요하면 이러한 항목을 다시 칠할 수 있지만 성가시다.

이것들이 클리핑 영역 밖에서 페인팅되는 것을 막기 위해주의해야 할 다른 것이 있습니까?

도움이 되었습니까?

해결책

JList 및 / 또는 그것이 그리는 구성 요소에서 명시 적으로 이중 버퍼링을 활성화 해 보셨습니까?(사용 : setDoubleBuffered(boolean aFlag) )

또 다른 생각은 EDT에 위임 한 후 즉시 기능을 종료해야 할 수도 있다는 것입니다.코드가 작성되는 방식은 non-EDT 스레드에서 ContentChanged를 호출하면 두 스레드 모두에서 업데이트가 발생하는 것처럼 보입니다.첫 번째 if에 로그인하거나 if에 중단 점을 설정하지만 실행 파일에는 아닌 문제가 있는지 확인하는 데 도움이됩니다.

예 : 라코 디스

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top