[네트워크 프로그래밍2]자바의 GUI (AWT와 SWING)
류명운
·2015. 8. 26. 18:42
이번 학기 네트워크 프로그래밍2에서는 처음으로 자바 GUI에 대하여 공부합니다.
(수업시간에 배웠던 내용을 예습하는 의미로 앞으로 포스팅을 꾸준히 진행하도록 하겠습니다~)
GUI는 Graphic User Interface의 약자로 컴퓨터를 사용하면서, 그림으로 된 화면 위의 물체나 틀, 색상과 같은 그래픽 요소들을 어떠한 기능과 용도로 나타내기 위해 고안된 사용자를 위한 컴퓨터 인터페이스 입니다.
한마디로, 좀더 사용자가 해당응용프로그램의 기능 등을 편하게 이용할 수 있는 틀?을 그래픽을 사용하여 제공하는 것을 뜻한다고 생각하시면 됩니다^^
간단히 GUI 목적, 특징, 실제 프로그래밍에 사용되는 패키지에 대하 간단히 알아보자면,
GUI의 목적
- 그래픽 이용, 사용자에게 이해하기 쉬운 모양으로 정보 제공
- 사용자는 마우스나 키보드를 이용하여 쉽게 입력
자바 GUI의 특징
- 강력한 GUI 컴퓨넌트 제공
- 쉬운 GUI 프로그래밍 (관련 클래스들을 패키지로 개발이되어 제공되므로 가저다 사용만 하시면 됩니다)
자바의 GUI 프로그래밍 방법
- AWT 패키지(java.awt)와 Swing 패키지(javax.swing)가 사용
스윙 컴포넌트 둘러보기(예시)
: 아래의 그림을 보면서 대충 이런게 있구나~ 하고 알아가자.
JApplet |
|
JButton |
|
JCheckBox |
|
JComboBox |
|
JDialog |
|
JEditorPane and JTextPane |
|
JFrame |
|
JList |
|
JPasswordField |
|
JProgressBar |
|
JRadioButton |
|
JScrollPane |
|
JSlider |
|
JSpinner |
|
JSplitPane |
|
JTabbedPane |
|
JTable |
|
JTextArea |
|
JTextField |
|
JToolBar |
|
JToolTip |
|
JTree |
|
스윙으로 만든 GUI 프로그램 예
다음으로 AWT와 Swing 패키지의 특징에 대하여 살펴보자.
AWT(Abstract Windowing Toolkit)
자바가 처음 나왔을 때 함께 배포된 GUI 라이브러리
GUI 클래스 패키지 - java.awt 패키지
Native 운영체제와 응용프로그램 사이의 연결 라이브러리
중량 컴포넌트(Heavy weight components)
-> AWT 컴포넌트는 native(peer)에 의존적임
-> OS의 도움을 받아야 화면에 출력되며 동작하는 컴포넌트. 운영체제에 많은 부담. 오히려 처리 속도는 빠름
Swing(스윙)
AWT 기술을 기반으로 작성된 자바 라이브러리
모든 AWT 기능 + 추가된 풍부하고 화려한 고급 컴포넌트
AWT 컴포넌트에 J자가 덧붙여진 이름의 클래스
클래스명 J자로 시작
순수한 자바 언어로 구현, JDK 1.1부터 - javax.swing 패키지
스윙 컴포넌트는 2가지 유형
AWT의 Component를 상속받는 클래스(JComponent) : 추상 클래스, 스윙 컴포넌트의 공통적인 속성구현, 인스턴스 생성불가.
AWT의 Container를 상속받는 클래스(JApplet, JDialog, JFrame 등)
Swing 컴포넌트는 native(peer)에 의존하지 않음
경량 컴포넌트(Light weight components)
컨테이너와 컴포넌트에 대하여 알아보자!
컨테이너:
- 다른 컴포넌트를 포함할 수 있는 GUI 컴포넌트(java.awt.Container를 상속받아야 함)
- 컨테이너 객체는 다른 컨테이너에 포함될 수 있는 컴포넌트
->AWT컨테이너 : Panel, Frame, Applet, Dialog, Window
->Swing컨테이너 : Jpanel JFrame, JApplet, JDialog, JWindow
최상위 컨테이너:
- 다른 컨테이너에 속하지 않고도 독립적으로 존재하고 화면에 출력이 가능한 컨테이너
-> JFrame, JDialog, JApplet
컴포넌트:
- 컨테이너에 포함되어야 비로소 화면에 출력될 수 있는 GUI객체
- 모든 GUI 컴포넌트의 최상위 클래스(javaawt.Component)
- 스윙 컴포넌트의 최상위 클래스(javax.swingJComponent)
GUI 라이브러리 계층 구조
GUI의 라이브러리 계층 구조입니다.
보시는 바와 같이 java는 Object가 최상의 루트 라이브러리로 존재하고 있습니다. Object를 기반으로 상속하여 계층적으로 관련 여러 라이브러리가 쓰여지는 것을 알수 있습니다.
이번 포스팅은 여기까지 살펴보고 다음 포스팅엔 실제적으로 Swing을 이용한 코딩을 살펴보도록 하겠습니다 *^^*
좋은하루되세요 !@.@
'삶의 늪에 들어 가기 전 > 정리중(미정리)' 카테고리의 다른 글
[컴퓨터구조]연습문제 pp.33-36 (0) | 2015.09.02 |
---|---|
[Eclipse] 디버깅 하는법(브레이크 포인트, 중단점 거는방법) (5) | 2015.08.31 |
한국성서대학교 15년도 2학기 1주차 묵상지[한국성서대 묵상지] (0) | 2015.08.25 |
서로를 이해하기 위하여 서평(방학과제) (0) | 2015.08.25 |
한국성서대 하계 방학 묵상지(1~9주) (4) | 2015.08.24 |