JScrollPane (행/열 헤더 포함) 사용 방법에 대한 Java Tutorials 예제를 사용하고 있습니다. 이 예제에서는 JLabel의 하위 클래스를 사용하여 뷰포트 뷰에 이미지를 표시합니다. 행/열 머리글 (Rule.java example code)을 표시하기 위해 샘플 코드를 사용했으며 기괴한 결과에 당황했습니다. 마침내 getClipBounds() (행/열 머리글의 어떤 영역이 해당 영역 만 칠할 수 있는지 확인하는 데 사용됨) 호출을 제거하고 전체 머리글을 그렸으며 문제가 해결되었습니다. 즉, 이제 전체 영역 (행/열 머리글과 기본 뷰포트 모두)을 그립니다. 그것은 나를 최적이 아닌 것으로 치게한다.Java : (JScrollPane) 뷰포트 뷰의 가시 영역 만 페인트 할 책임이 있습니까?
- Java Tutorials 예제가 올바르게 작동하는 이유는 누구나 설명 할 수 있습니까? (소스는 예제에서 실행되는 것과 다릅니다)?
- 부분적으로 만 표시 되더라도 전체 창을 그리는 것이 맞습니까?
- 행/열 머리글과 주 뷰포트에 대해 뷰포트에 표시되는 전체 개체의 영역을 결정할 수 있도록 어떻게 그 영역을 페인트 할 수 있습니까?
UPDATE :
내가 대신 Graphics.getClipBounds의 JComponent.getVisibleRect을()()를 사용하면 일이 제대로 작동하는 예는 작동하지만, 내가 찾은 이유는 아직 모른다예상대로 이 방법이 올바른지 확실하지 않은 경우
우리는 귀하의 코드가 귀하의 사유가 작동하지 않는 이유를 알 필요가 있습니다. – Michael