본문 바로가기
Develop/Java

JAVA AWT & Swing

by J0DEV 2021. 8. 9.
반응형

AWT&SWING.zip
다운로드

AWT의 이해

1. GUI환경과 AWT개요

GUI와 AWT의 추상성

  • GUI환경
  • Graphic User Interface
  • 마우스와 컬러 모니터를 사용하여 컴퓨터를 제어한다.

 

AWT(Abstract Windows Toolkit)

 

 

  1. GUI환경을 구축하기 위한 자바 API이다.
  2. 버튼, 체크박스 등의 컴포넌트와 이벤트 처리를 위한 인터페이스를 포함한다.
  3. AWT로 구축한 자바 프로그램은 어떤 운영체제에서도 사용 가능하다.
  4. 해당 윈도우 시스템에 따라 약간 달라질 수 있다.

 

AWT의 추상성

  • 코드 수정없이 JVA이 설치된 모든 운영체제에서 사용 가능
  • 각 운영체제마다 자바 AWT 프로그램이 변환됨

AWT의 구조

 

2. AWT를 이용한 프로그래밍 절차

AWT를 이용한 프로그래밍 절차

 

  1. GUI가 가능한 컨테이너 클래스를 상속받아 새로운 클래스를 생성한다.
  2. 프로그램에 사용될 각종 컴포넌트를 생성한다.
  3. 생성된 컴포넌트를 컨테이너에 부착한다.
  4. 이벤트 핸들러를 작성한다.

 

 

컨테이너 클래스 생성 -> 컴포넌트 생성 -> 컨테이너에 부착 -> 이벤트 핸들러 작성

 


각종 Component 클래스

1. Component 클래스 개요

Component의 정의와 하부 클래스

  • Component란 구성요소라는 뜻이다.
  • GUI환경을 구성하는 구성요소의 역활을 담당하는 클래스이다.
ex1) Button

 

ex2) CheckBox

ex3) Radio

ex4) DropDownList

ex5) List

ex6) TextComponent

ex7) Canvas

ex8) Scrollbar

ex9) Label

Menu의 사용

1. 자바에서의 메뉴 구조

Menu클래스의 정의와 작성절차

  • 사용자가 항목을 선택하여 항목에 변화가 일어날 수 있도록 구현한 클래스이다.

작성절차

 

  1. MenuBar 클래스 객체를 생성
  2. 필요한 Menu 객체를 생성
  3. Menu 객체에 서브 Menu항목을 추가
  4. ii~iii 번을 반복
  5. MenuBar 객체에 Menu 객체를 추가

 

 

public MenuEx(){
	mb = new MenuBar();
	m1 = new Menu(“MainMenu1”);

	m1.add(“SubMenu1”);
	m1.add(“SubMenu2”); 
	m1.add(“SubMenu3”);
    
	m2 = new Menu(“MainMenu2”);

	m2.add(“subMenu1”);
	m2.add(“subMenu2”);

	mb.add(m1);
	mb.add(m2);

	setMenuBar(mb);
}

 

 


Swing

1. Swing 개요

Swing

  • 자바에서 AWT보다 사용할 수 있는 컴포넌트의 종류가 많아서 향상된 GUI환경을 제공해 준다.
  • 플랫폼에 따라 화면 모습이 바뀌지 않는다.
  • 플랫폼에 종속적이지 않은 구조로서 “가벼운 컴포넌트”라 하며 이에 반해서 AWT는 “무거운 컴포넌트”라 한다.
  • AWT를 대치하기 위한 것이 아니고 기존 AWT에 새로운 컴포넌트가 추가된 구조다.

2. Swing의 특징

Swing의 특징

  • 룩앤필(Look & Feel), MS의 윈도우 시스템과 리눅스의 윈도우 시스템을 보면 모양이 차이를 확연히 느낄 수 있게 되는데 이를 Look& Feel이라 한다. Swing은 플랫폼에 종속되지 않고 원하는 형태의 룩앤필을 사용할 수 있다.
  • 더블 버퍼링을 기본적으로 지원한다.
  • 풍선 도움말을 지원한다.

3. 모델-뷰-컨트롤러 구조

모델-뷰-컨트롤러 구조

  • GUI를 구현할 때 컴포넌트에 화면 내용, 저장 데이터, 이벤트 처리 등을 집중시키지 않고 분리해서 처리하는 방법이다.
  • 화면 내용은 View, 저장 데이터는 Model, 이벤트 처리는 Controller가 담당하도록 한다.
  • 한 개의 모델에 여러 개의 뷰를 사용하는 것이 가능하다.

 

반응형

'Develop > Java' 카테고리의 다른 글

JAVA Event  (0) 2021.08.09
JAVA Container & Layout  (0) 2021.08.09
JAVA Generic  (0) 2021.08.09
JAVA 자바중요클래스  (0) 2021.08.09
JAVA 추상클래스, 인터페이스, 내부클래스  (0) 2021.08.08