Programming/Back-end(Java, JSP)

[Java] Swing 기초개념

Sujin Lee (Daisy) 2020. 1. 9. 05:59

Swing이란?

 - Java에서 GUI를 만들어주는 대표적인 툴. 

 - 여러 플랫폼의 룩앤필을 제공 

 - 버튼, 체크박스, 라벨 뿐만 아니라 tabbed panel, scroll pnae, tress, 표, 리스트 등 다양한 컴포넌트를 제공

 

AWT와 Swing의 차이점

  Java AWT Java Swing
플랫폼과의 관계 플랫폼과 무관(독립적) 플랫폼에 종속적
컴포넌트 무겁다. 종류 적다.  가볍다. 종류가 다양하다. 
룩앤필 pluggable 룩앤필 제공X pluggable 룩앤필 제공O
MVC MVC 패턴 따르지X MVC 패턴을 따른다. 

※ MVC 패턴 : Model View Controller
 - Model : 데이터를 가져와 어떤 작업을 처리하거나 처리한 작업을 저장. 
 - View : 데이터를 보여준다.
 - Controller : 뷰와 모델 사이의 흐름을 제어한다. 

 

Swing 클래스

 - 클래스명이 J로 시작한다. ex) JFrame, JLabel, JTable, ..

 - 스윙 컴포넌트는 2가지 유형이 존재 : Container, JComponent

    ┗ Container : AWT의 Contianer(java.awt.Container)를 상속받음 

    ┗ JComponent : 스윙 컴포넌트의 공통적인 속성을 구현. 

 - Swing class의 hierearchy는 아래 이미지와 같다. 

Swing Class Hierarchy - Image from https://www.ntu.edu.sg/home/ehchua/programming/java/J4a_GUI_2.html

 

컨테이너와 컴포넌트 

1. 컨테이너

 - 컨테이너 클래스는 위에 다른 컴포넌트들을 포함할 수 있는 것을 말한다.

 - 그러므로 GUI를 만들 때, 최소 하나 이상의 컨테이너 오브젝트가 필요하다. 

   ┗ java.awt.Container를 상속받아야 함. 

- 최상위 컨테이너 : 다른 컨테이너에 속하지 않고도 독립적으로 존재하고 화면에 출력 가능함.

   ex) Jframe, JDialog, JApplet.  

 - 컨테이너의 객체는 컨테이너에 포함될 수 있는 컴포넌트들이다.

   ┗ AWT 컨테이너 : Window, Frame, Dialog, Panel, Applet (위의 이미지 참고) 

  ┗ Swing 컨테이너 : JWindow, JFrame, JDialog, JPanel, JApplet (위의 이미지 참고)

1) Panel : 순수한 컨테이너이며, 이 자체로는 윈도우창이 아니다. 패널의 목적은 컴포넌트들을 윈도우에 올리도록 조직화하는 것이다. 

2) Frame : 완벽하게 작동하는 윈도우창이다. (타이틀, 아이콘 포함) 

3) Dialog : 팝업같은 거라고 생각하면 된다. 메시지가 팝업되면서 나타나는 창이다. Frame과 마찬가지로 완벽하게 작동하는 윈도우창이다. 

 

2. 컴포넌트 

 - 컴포넌트 : 컨테이너에 포함되어야지만 비로소 화면에 출력될 수 있는 GUI 객체. 

    ┗ 모든 GUI 컴포넌트의 최상위 클래스 : java.awt.Component

    ┗ Swing 컴포넌트의 최상위 클래스 : javax.swing.JComponent  

 

Swing의 JComponent 

 - 스윙의 JComponent는 아래와 같은 것들이 있다.

 - 아래의 11가지 컴포넌트만 쓸 줄 알면 대충 뭔가를 만들 수 있는 것 같다. (주관적인 생각) 

    ┗ JPanel, JScrollPane, JTabbedPane, JOptionPane

    ┗ JLabel

    ┗ JTextField, JTextArea, JTextPane

    ┗ JButton, JCheckBox, JRadioButton 

Swing JComponent Hierarchy - Image from https://www.ntu.edu.sg/home/ehchua/programming/java/J4a_GUI_2.html

 

Swing GUI 프로그램 만드는 법 

1. 프레임을 만든다.

2. 프레임에 스윙 컴포넌트를 붙인다. 

3. main함수를 만든다. 

 

 

좋은 참고 싸이트들 

https://docs.oracle.com/javase/tutorial/uiswing/components/toplevel.html

https://www.ntu.edu.sg/home/ehchua/programming/java/J4a_GUI_2.html

 

반응형