자바의 GUI
GUI 응용프로그램이란?
GUI란 Graphical User Interface의 약자로서 이미지 혹은 그래픽을 이용하여 메뉴 등을 포함하는 화면을 구성하고, 키보드의 마우스 등의 편리한 입력 도구를 이용하여 사용자가 입력하기 편하도록 만들어진 사용자 인터페이스입니다.
소프트웨어 개발자들은 프로그래밍 언어를 선택함에 있어 GUI를 작성하기에 편한 정도와 다양한 기능 여부를 중요한 기준으로 삼는다. 자바는 AWT와 Swing 패키지 등 어떤 언어보다 강력한 GUI 라이브러리를 제공하여, 소프트웨어 개발자들이 다양한 GUI를 쉽게 구성하도록 해 줍니다.
AWT와 Swing 패키지
자바 언어는 GUI 응용프로그램을 쉽게 작성할 수 있도록 다양한 GUI 컴포넌트(GUI Component)를 제공합니다. 자바의 GUI 컴포넌트는 AWT 컴포넌트와 Swing 컴포넌트로 구분되며, 이들을 각각 java.awt 패키지와 javax.swing 패키지를 통해 공급됩니다.
AWT
AWT(Abstract Windowing Toolkit)는 자바가 처음 나왔을 때 함께 배포된 페키지로서 많은 GUI 컴포넌트를 포함합니다. Frame, Window, Panel, Dialog, Button, Label, TextField, Checkbox, Choice 등 AWT의 컴포넌트들은 중량 컴포넌트(heavy weight component)로 불리는데, 이 컴포넌트들은 운영체제(native OS)의 도움을 받아 화면에 출력되기 때문에 운영체제의 자원을 많이 소모하여 운영체제에 많은 부담을 줍니다.
스윙(Swing)
스윙(Swing)은 AWT와 달리 순수 자바 언어로 작성되었습니다. 운영체제이 도움을 받지 않기 때문에 스윙 컴포넌트들은 경량 컴포넌트(light weight component) 라고 불립니다. 그러므로 스윙 컴포넌트들은 운영체제와 관계없이 항상 동일하게 작동하며 동일한 모양으로 그려집니다. 모든 AWT 컴포넌트들이 100% 호환되도록 스윙 컴포넌트로 다시 작성되었으며, 스윙 컴포넌트의 이름은 AWT 컴포넌트와 구분하기 위해 모든 대문자 J로 시작합니다. 또한 선마이크로시스템즈사는 AWT에는 없는 풍부한 고급 스윙 컴포넌트들을 추가적으로 개발하였습니다. AWT보다 스윙 컴포넌트를 이용하면 보다 화려하며 다양한 모양의 GUI 응용프로그램을 쉽게 개발할 수 있습니다. 스윙은 AWT에 구현된 이벤트 처리나 GUI 컴포넌트의 기본 원리를 바탕으로 작성되었기 때문에, 스윙을 사용하기 위해 AWT 패키지가 필요합니다.
AWT보다 스윙 사용 권장
일반적으로 다양하고 모양이 예쁜 스윙 컴포넌트를 더 많이 사용합니다. 최근에는 거의 모든 GUI 응용 프로그램이 스윙 기반으로 작성되고 있습니다.
스윙 기반의 GUI 응용 프로그램 샘플
스윙 응용프로그램은 조립하듯이 스윙 컴포넌트들을 조립하여 작성됩니다.
- 응용프로그램의 전체 컴포넌트를 담는 JFrame
- 모든 메뉴를 담는 JMenuBar
- 메뉴로 작동하는 JMenu
- 툴바로 작성하는 JToolBar
- 버튼으로 작동하는 JButton, 툴바에 부착됨
- 문자열을 출력하는 JLabel, 툴바에 부착됨
- 이미지 버튼으로 작동하는 JButton, 툴바에 부착됨.
- 한 줄 문자열은 입력 받는 창 JTextField, 툴바에 부착됨
- 푸시다운 버튼으로 작동하는 JComboBox, 툴바에 부착됨
- 두 개의 분리된 펜으로 작동하는 JSplitPane, JFrame에 부착됨
- 리스트를 출력하는 JList, JSplitPane의 왼쪽에 부착됨
- 이미지를 출력하는 JLabel, JSplitPane의 오른쪽에 부착됨
- JLabel에 출력된 이미지나 텍스트를 스크롤 가능하게 만드는 JScrollPane
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
| 스윙 GUI 프로그램 만들기 (1) | 2025.05.17 |
|---|---|
| 자바 GUI 패키지 (1) | 2025.05.14 |
| 파일 입출력 응용: 파일 복사 (1) | 2025.05.08 |
| File 클래스 (1) | 2025.05.05 |
| 버퍼 입출력과 파일 입출력 (1) | 2025.05.02 |