JRootPane

JRootPane (Swing 컨테이너의 내부 구조를 관리하는 루트 컨테이너)

JFrame, JDialog, JWindow, JApplet, JInternalFrame이 내부적으로 사용하는 경량 컨테이너입니다. 루트 팬이 제공하는 기능에 대한 작업 지향 정보는 Java 튜토리얼의 "How to Use Root Panes"를 참고하세요.

출처: Java API Reference

본문

JRootPane은 네 개의 무거운(heavyweight) JFC/Swing 컨테이너(JFrame, JDialog, JWindow, JApplet)와 경량 컨테이너 JInternalFrame이 구현하는 RootPaneContainer 인터페이스 뒤에서 동작하며, 이들 모두는 자신의 작업을 JRootPane에 위임합니다.

public class JRootPane extends JComponent implements Accessible

JRootPaneglassPane, 선택적인 menuBar, contentPane으로 구성됩니다. JLayeredPanemenuBarcontentPane을 관리합니다. glassPane은 모든 것의 맨 위에 놓여 마우스 움직임을 가로챌 수 있는 위치에 있습니다.

menuBar는 선택 사항이지만, layeredPane, contentPane, glassPane은 항상 존재합니다. 이들을 null로 설정하려 하면 예외가 발생합니다. JRootPane에 컴포넌트를 추가하려면 (선택적 메뉴 바를 제외하고) 다음과 같이 contentPane에 객체를 추가합니다.

rootPane.getContentPane().add(child);

레이아웃 관리자 설정, 컴포넌트 제거, 자식 나열 등도 모두 JRootPane 대신 contentPane에서 호출됩니다. JMenuBar가 설정되면 프레임의 위쪽 가장자리에 배치되고, contentPane은 나머지 영역을 채우도록 위치와 크기가 조정됩니다.

glassPane은 기본적으로 보이지 않으며, setVisible로 표시 여부를 제어할 수 있습니다. JRootPane이 사용하는 사용자 지정 LayoutManagerglassPane이 전체 보기 영역을 채우고, layeredPane이 전체 보기 영역을 채우며, menuBarlayeredPane의 위쪽 가장자리에 위치하고, contentPane이 메뉴 바를 제외한 전체 보기 영역을 채우도록 보장합니다.

Swing은 스레드에 안전하지 않습니다. 이 클래스의 직렬화된 객체는 향후 Swing 릴리스와 호환되지 않을 수 있습니다.

더 알아보기 (Learn more)

Java 공식 API