JScrollPane
JScrollPane (뷰포트와 스크롤바를 관리하는 스크롤 컨테이너)
경량 컴포넌트의 스크롤 가능한 뷰를 제공합니다. JScrollPane은 뷰포트, 선택적인 세로·가로 스크롤바, 선택적인 행·열 헤더 뷰포트를 관리합니다.
본문
JScrollPane은 JScrollBar들, JViewport, 그리고 이를 연결하는 배선으로 구성됩니다. 스크롤바와 뷰포트 외에도 열 헤더와 행 헤더를 가질 수 있는데, 각각 setRowHeaderView와 setColumnHeaderView로 지정하는 JViewport 객체입니다.
public class JScrollPane extends JComponent implements ScrollPaneConstants, Accessible
열 헤더 뷰포트는 자동으로 좌우로 스크롤하며 메인 뷰포트의 좌우 스크롤을 추적합니다. 행 헤더도 비슷한 방식으로 동작합니다. 두 스크롤바가 만나는 지점이나 스크롤바가 헤더와 만나는 지점에서는 기본적으로 비어 있는 직사각형 공간이 생기며, setCorner 메서드로 특정 모서리에 컴포넌트를 추가할 수 있습니다.
메인 뷰포트 주위에 테두리를 추가하려면 setViewportBorder를 사용하고, 스크롤 팬 전체에 테두리를 추가하려면 setBorder를 사용합니다. 뷰포트 뷰가 뷰포트보다 작거나 불투명하지 않을 때 사용할 배경색은 scrollPane.getViewport().setBackground()로 설정할 수 있습니다. 기본적으로 JViewport는 불투명해서 자신의 배경색으로 배경을 완전히 채우기 때문입니다.
기본적으로 JScrollPane은 자식 컴포넌트의 레이아웃을 처리하기 위해 ScrollPaneLayout을 사용합니다. 뷰가 Scrollable을 구현하면 getPreferredScrollableViewportSize, getScrollableTracksViewportWidth, getScrollableTracksViewportHeight를 조합해서 뷰포트 뷰의 크기를 결정하고, 그렇지 않으면 getPreferredSize를 사용합니다.
Swing은 스레드에 안전하지 않습니다. 이 클래스의 직렬화된 객체는 향후 Swing 릴리스와 호환되지 않을 수 있습니다.