프로그래밍 언어/JAVA

자바 GUI 패키지

· 코딩마이데이

GUI 패키지 계층 구조

모든 GUI 컴포넌트들은 Component 클래스를 반드시 상속받으며, 스윙 컴포넌트의 클래스 명은 모두 J로 시작합니다. AWT 컴포넌트는 Button, Label 등과 같이 Component를 직접 상속받는 것들과 Panel, Frame 등돠 같이 Container를 상속받는 것들이 있습니다. 그리고 JApplet, JFrame, JDialog를 제외한 모든 스윙 컴포넌트들은 JComponent를 상속받습니다.

Font, Dimension, Color, Graphics 등은 컴포넌트가 아니지만, 문자의 폰트 설정, 색, 도형 그리기 등 그래픽 작업 시 반드시 필요합니다.

AWT와 스윙 클래스의 상속 관

컨테이너와 컴포넌트

자바의 GUI 응용프로그램은 GUI 컴포넌트들로 구성되며, GUI 컴포넌트들은 다른 컴포넌트를 포함할 수 있는지 여부에 따라 순수 컴포넌트와 컨테이너로 분류됩니다. 빈 판위에 레고 블록을 쌓아 가듯이, GUI 컴포넌트들을 쌓아 GUI 응용프로그램을 구성합니다.

 

컨테이너

컨테이너란 다른 GUI 컴포넌트를 포함할 수 있는 컴포넌트입니다. 그러므로 컨테이너는 컴포넌트이면서 동시에 컨테이너입니다. 킨테이너가 되기 위해서는 java.awt.Container 클래스를 상속받아야만 합니다. Container 클래스는 java.awt.Component를 상속받기 대문에 컨테이너가 컴포넌트이기도 한 것입니다. 컨테이터는 다른 컨테이너에 컴포넌트로 포함될 수도 있습니다. 컨테이너로 작동하는 클래스는 다음과 같습니다.Frame, Panel, Applet, Dialog, Window // AWT 컨테이너JFrame, JPanel, JApplet, JDialog, JWindow // 스윙 컨테이너

 

컴포넌트

한편, 컴포넌트란 컨테이너와 달리 다른 컴포넌트를 포함할 수 없으며, 컨테이너에 포함할 수 없으며, 컨테이너에 포함되어야 비로소 화면에 출력될 수 있는 GUI 객체입니다. AWT나 스윙의 모든 컴포넌트들은 java.awt.Component를 상속받기 때문에, Component 클래스에는 모든 컴포넌트들의 공통적인 속성과 기능이 작성되어 있습니다. 컴포넌트의 크기, 모양, 위치, 색, 폰트 등에 관한 정보를 관리하는 멤버 변수와 메소드, 컴포넌트 그리기, 이동, 삭제, 이벤트 처리에 관한 메소드 등 다양한 기능을 제공합니다. 또한 순수 스윙 컴포넌트들은 모두 javax.swing.JComponent로 상속받으며, JCompnent에는 스윙 컴포넌트들의 공통적인 기능이 작성되어 있다

 

최상위 컨테이너

컨테이너 중에서 다른 컨테이너에 속하지 않고도 독립적으로 화면에 출력될 수 있는 컨테이너를 최상위 컨테이너(Top Level Container)라고 합니다. JFrame, JDialog, JApplet의 3가지가 이에 속합니다. 그러나 이들을 제외한 나머지 컨테이너나 컴포넌트 들은 다른 컨테이너에 부착되어야 하고, 종국에는 최상위 컨테이너에 부착되어야만 화면에 출력됩니다.

 

컨테이너와 컴포넌트의 포함 관계

자바 스윙 응용프로그램은 이렇게 JFrame과 같은 최상위 컨테이너 위에 컨테이너와 컴포넌트들이 마치 레고 블록을 쌓는 것처럼 컨테이너와 컴포넌트의 게층 구조로 구성되어, 컨테이너에 부착된 컴포넌트들을 자식 컴포넌트라고 부릅니다.

스윙 응용프로그램에서 컨테이너와 컴포넌트의 포함 관계

 

 

 

 

 

'프로그래밍 언어 > JAVA' 카테고리의 다른 글

컨테이너(Container)와 배치(Layout)  (1) 2025.05.20
스윙 GUI 프로그램 만들기  (1) 2025.05.17
자바의 GUI  (0) 2025.05.11
파일 입출력 응용: 파일 복사  (1) 2025.05.08
File 클래스  (1) 2025.05.05