TIL 28 | [Java] 자바 GUI

Yoonsik·2022년 6월 20일
0

JAVA

목록 보기
4/11

GUI 응용프로그램이란?

GUIGraphical User Interface의 약자로서, 이미지 혹은 그래픽을 이용하여 메뉴 등을 포함하는 화면을 구성하고, 키보드 외 마우스 등의 편리한 입력도구를 이용하여 사용자가 입력하기 편하도록 만들어진 사용자 인터페이스이다.

자바 언어는 GUI 응용프로그램을 쉽게 작성할 수 있도록 다양한 GUI 컴포넌트를 제공한다.

  • 자바의 GUI 컴포넌트

    • AWT 컴포넌트 - java.awt 패키지를 통해 공급
    • Swing 컴포넌트 - java.swing 패키지를 통해 공급

이번 포스팅에서는 비교적 더욱 많이 쓰이는 Swing을 다룰 예정이다.


Swing

스윙은 AWT와는 달리, 순수 자바언어로 작성되었다. 또, 운영체제의 도움을 받지 않기 때문에 스윙 컴포넌트들은 경량(light weight component) 라고 불린다.

그러므로 스윙 컴포넌트들은 운영체제와 관계없이 항상 동일하게 작동하며 동일한 모양으로 그려진다.
모든 AWT 컴포넌트들이 100% 호환되도록 스윙 컴포넌트로 다시 작성되었으며,
스윙 컴포넌트의 이름은 AWT 컴포넌트와 구분하기 위해 모두 대문자 J로 시작한다. Ex) JFrame, JWindow, JPanel, JButton, JLabel, JList, JTree, JScrollPane ...


GUI 패키지의 계층구조


다음과 같이, 모든 GUI 컴포넌트들은 Component 클래스를 반드시 상속받으며, 스윙 컴포넌트의 클래스 명은 모두 J로 시작한다.

그리고 JApplet, JFrame, JDialog를 제외한 모든 스윙 컴포넌트들은 JComponent를 상속받는다.

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

컨테이너와 컴포넌트

자바의 GUI 응용프로그램 - GUI 컴포넌트들고 구성된다.

GUI 컴포넌트들은 다른 컴포넌트를 포함할 수 있는지, 없는지에 따라 순수 컴포넌트와 컨테이너로 분류된다.

  • 컨테이너

    컨테이너란 다른 GUI 컴포넌트를 포함할 수 있는 컴포넌트이다. 그러므로, 컨테이너는 컴포넌트이면서 동시에 컨테이너이다.

    이는 GUI 패키지 계층구조에서도 확인 가능하다. 컨테이너가 되기 위해서는 java.awt.Container 클래스를 상속받아야 한다. 이때 Container 클래스는 java.awt.Component를 상속받기 때문에 컨테이너가 컴포넌트이기도 한 것이다.

    컨테이너는 다른 컨테이너에 컴포넌트로 포함될 수 있다.

    컨테이너로 작동하는 클래스(스윙 컨테이너)
    JFrame, JPanel, Japplet, JDialog, JWindow

  • 최상위 컨테이너

    최상위 컨테이너란 컨테이너 중에서 다른 컨테이너에 속하지 않고도 독립적으로 화면에 출력될 수 있는 컨테이너이다.

    최상위 컨테이너(Top Level Container)
    JFrame, JDIalog, JApplet


profile
꾸준함의 힘

0개의 댓글