Almost-Native

자바 스윙 프레임(Frame) vs 패널(Panel) vs 패인(Pane) 차이 본문

Java 프로그램 개발, IT

자바 스윙 프레임(Frame) vs 패널(Panel) vs 패인(Pane) 차이

2021. 1. 9. 11:10

Java Swing 프로그램을 하다보면 비슷한데 헷갈리는 개념들이 프레임, 패널, 패인 입니다.

 

프레임의 클래스명은 JFrame, 패널의 클래스명은 JPanel,

패인들은 JTabbedPane, JScrollPane, JLayeredPane, JDesktopPane, JSplitPane 등이 있습니다.

그리고, 이들은 모두 뭔가를 담을 수 있는 녀석들이라고 해서 컨테이너(Container) 라고 부릅니다.

 

* 프레임 : 탑레벨 컨테이너.
              그냥 윈도우창 한개라고 보면 됨.

* 패널    : 그룹핑하는 역할에 충실한 컨테이너.
              특별한 기능은 없고 주로 비슷한 녀석들을 묶어서 함께 데리고 다니기 위한 목적.

* 패인    : 패널과 비슷한 구석이 있지만, 좀더 특별한 기능에 충실한 컨테이너.
              탭기능, 스크롤기능, 레이어기능, ...

 

그냥 고정된 크기의 윈도우창에 라벨, 텍스트박스, 버튼 등의 콘트롤(Control)들이 고정된 위치에 고정된 크기로 자리잡고 있으면서 기능을 하는 단순한 프로그램인 경우는 패널, 패인 사용 없이도 프레임만 가지고도 개발이 가능합니다.

 

하지만, 이 콘트롤들이 프레임내에서 위치를 함께 이동하거나, 크기가 변경되거나, 함께 보였다 안보였다 하거나 등등의 일이 발생하는 경우, 패널, 패인을 통해서 묶어주면 훨씬 쉬워집니다.

그런 이유에서 사용합니다.

 

단순히 묶어서 데리고 다니는 정도면 패널(Panel)로 충분하고,

레이어를 만들어서 특정 레이어를 보였다 안보였다 하고 싶거나, 탭기능을 구현하거나, 전체 화면 스크롤을 구현하는 등의 기능을 원하면 해당 목적에 맞는 패인(Pane)을 사용하면 됩니다.

 

Comments