Presentation is loading. Please wait.

Presentation is loading. Please wait.

자바 5.0 프로그래밍.

Similar presentations


Presentation on theme: "자바 5.0 프로그래밍."— Presentation transcript:

1 자바 5.0 프로그래밍

2 chapter 14 : GUI

3 학습목표 AWT ( Abstract Window Toolkit) AWT 계층구조 Container 특징
LayoutManager AWT 이벤트 이벤트 처리방법 Adapter

4 정의 작성방법 AWT 자바의 GUI 및 이벤트처리를 담당하는 GUI 메커니즘을 의미. java.awt 패키지의 클래스 이용.
OS자원을 이용하여 GUI를 보여준다. 플랫폼에 종속적이다 ( weight ) javax.swing 패키지의 클래스 이용. 자체적인 GUI클래스로 보여준다. 플랫폼에 독립적이다 ( light )

5 AWT 계층구조

6 구성요소 AWT 비주얼Component Button , Checkbox , Label 등
반드시 Container을 통해서 보여진다. Container Window 계열 : 비주얼컴포넌트 및 Panel을 보여준다. - Frame - Dialog Panel 계열 : - Applet - 독립적으로 작동하지 못하고 반드시 Window계열을 통해서 보여진다. LayoutManager BorderLayout , FlowLayout ,CardLayout , GridLayout 등 컴포넌트의 위치 및 크기 설정.

7 AWT 실행화면

8 Frame Panel Container 일반적인 응용프로그램에서 윈도우를 생성하기 위해 사용된다.
기본적으로 타이틀, 최소버튼,최대버튼,종료버튼이 지원된다. 상위클래스인 Window은 타이틀,메뉴가 지원되지 않는다. 기본으로 화면에 안보이게 설정했기 때문에 반드시 f.setVisible( true)값으로 설정한다. 화면크기는 setSize() , setBounds() 메소드를 사용한다. 기본 LayoutManager은 BorderLayout 이다. Panel 컴포넌트들을 그룹별로 묶어서 처리할 때 사용한다. 독립적으로 보여주지 않고 반드시 Frame을 통해서 보여진다. 기본 LayoutManager은 FlowLayout 이다. 주로 컴포넌트들의 화면배치문제로 인해 Panel을 자주 사용한다.

9 Component 특징 GUI화면을 구성하는 기본단위로서 각 컴포넌트들의 공통적인 메소드를 정의하고 있다. 종류

10 특징 종류 LayoutManager ( 배치지시자 )
컨테이너에 컴포넌트를 배치할 때의 위치와 크기가 정해져 있다. 컨테이너는 기본적으로 하나의 LayoutManager를 갖는다. 컨테이너 고유의 LayoutManager를 바꿀수 있다. setLayout() 메소드 이용 종류 BorderLayout FlowLayout CardLayout GridLayout GridBagLayout

11 특징 BorderLayout Frame의 기본 배치관리자 이다. 5개의 영역으로 구분되어 배치된다. 기본은 Center 이다.
컴포넌트 크기가변 , 위치불변 배치관리자 변경메소드 : f.setLayout( new FlowLayout());

12 BorderLayout 예제

13 특징 FlowLayout Panel 의 기본 배치관리자 이다. 수평으로 순서대로 늘어놓는 형태의 배치관리자이다.
컴포넌트 크기불변, 위치가변

14 FlowLayout 예제

15 특징 GridLayout 바둑판 형태의 배치관리자이다. 생성시 행과열을 지정한다.
컴포넌트 추가는 좌측에서 우측으로 , 위에서 아래로 추가된다.

16 GridLayout 예제

17 Panel 사용예제

18 GUI 이벤트

19 이벤트 처리( Event Handling)
AWT 이벤트 이벤트( Event ) GUI 컴포넌트에서 발생되는 모든 행위를 지칭하는 용어. - 버튼을 클릭하거나 윈도우 종료단추를 클릭하는 행동 이벤트 소스( Event Source) Event 가 발생된 컴포넌트를 의미한다. - 버튼을 클릭하면 이벤트가 발생이 됐으며 이벤트소스는 버튼이된다. 이벤트 처리( Event Handling) Event가 발생되었을 때 실제로 발생되는 동작을 의미한다. - 윈도우 종료버튼을 클릭하면 창이 닫힌다. 이벤트 리스너( Event Listener) 컴포넌트에서 이벤트의 발생여부를 체크하고 실제적으로, 발생된 각 이벤트의 처리메소드를 정의하고 있는 프로세스를 의미. 인터페이스로 선언.

20 이벤트 처리자( Event Handler)
AWT 이벤트 이벤트 처리자( Event Handler) 이벤트 리스너에 전달된 이벤트를 실제로 구현작업을 담당하는 클래스를 의미한다. 이벤트리스너를 implements 해서 구현한다. 자바의 이벤트 처리방법 GUI프로그램이 실행중에 OS가 이벤트가 발생이 되는지를 검사. 이벤트가 발생되면 OS가 JVM에게 이벤트를 전달한다. JVM은 발생된 이벤트를 처리하기 위하여 이벤트객체를 생성. 생성된 이벤트객체를 이벤트리스너를 구현한 이벤트핸들러로 전달하여 이벤트 처리를 한다. 이벤트발생 JVM 이벤트핸들러 버튼클릭 interface

21 java.awt.event 패키지의 Event 계층구조
ActionEvent InputEvent PaintEvent KeyEvent MouseEvent AdjustmentEvent ComponentEvent ItemEvent TextEvent FocusEvent ContainerEvent WindowEvent

22 java.awt.event 패키지의 Event 내용
이벤트 종류 설명 ActionEvent 버튼, 리스트, 메뉴 등의 컴포넌트가 눌리거나 선택이 되었을 때 발생하는 이벤트 AdjustmentEvent 스크롤바와 같은 조정 가능한 컴포넌트에서 조정이 일어나면 발생하는 이벤트 ComponentEvent 컴포넌트의 모습, 이동, 크기가 변화될 때 발생하는 이벤트 ItemEvent 리스트와 같은 선택항목이 있는 컴포넌트에서 선택항목이 선택될 때 발생되는 이벤트 TextEvent 텍스트 컴포넌트에서 값이 입력될 때 발생하는 이벤트 ContainerEvent 컨테이너에 컴포넌트가 추가되거나 제거될 때 발생하는 이벤트 FocusEvent 컴포넌트에 초점(Focus)이 들어 올 때 발생하는 이벤트 PaintEvent 컴포넌트가 그려져야 할 때 발생하는 이벤트 WindowEvent 윈도우가 활성화되거나 비활성화 될 때, 최소, 최대, 종료 될 때 발생하는 이벤트 KeyEvent 키보드로부터 입력이 될 때 발생하는 이벤트 MouseEvent 마우스가 눌려지거나 움직일 때, 마우스 커서가 컴포넌트 영역에 들어가거나 벗어날 때 발생하는 이벤트

23 컴포넌트별 발생이벤트 종류 AWT 이벤트 컴포넌트 발생 가능한 이벤트 Button
ActionEvent, FocusEvent,KeyEvent,MouseEvent, ComponentEvent Checkbox ItemEvent, FocusEvent,KeyEvent, MouseEvent,ComponentEvent Frame WindowEvent,FoucsEvent,KeyEvent,MouseEvent,ComponentEvent List ActionEvent, FocusEvent, KeyEvent, MouseEvent,ItemEvent, ComponentEvent Label FocusEvent, KeyEvent, MouseEvent, ComponentEvent Choice ItemEvent , FocusEvent, KeyEvent, MouseEvent, ComponentEvent Adjustable AdjustmentEvent

24 ActionEvent AWT 이벤트 버튼이 클릭되거나 리스트, 메뉴등이 선택되었을 때 발생한다.
텍스트필드에서 엔터를 쳤을때도 발생한다.

25 AWT 이벤트 ItemEvent 체크박스, 리스트 , 초이스 컴포넌트에서 항목을 선택하거나 해제했을 경우 발생한다.

26 AWT 이벤트 keyEvent 키보드를 통해서 키 입력을 했을 경우에 발생한다.

27 AWT 이벤트 MouseEvent 마우스를 클릭하거나 포인터가 컴포넌트 영역에 들어오거나 벗어날 때 발생한다.

28 AWT 이벤트 WindowEvent 윈도우를 활성화 ,아이콘화 ,비활성화 작업시 발생한다.

29 이벤트 리스너 종류 AWT 이벤트 이벤트 리스너 종류 구현 메소드 ActionListener
actionPerformed( ActionEvent ) AdjustmentListener adjustmentValueChanged( AdjustmentEvent) ItemListener itemStateChanged( ItemEvent ) TextListener textValueChanged( TextEvent ) FocusListener focusGained(FocusEvent) focusLost(FocusEvent) KeyListener keyPressed(KeyEvent) keyReleased(KeyEvent) keyTyped(KeyEvent) MouseMotionListener mouseDragged(MouseEvent), mouseMoved(MouseEvent)

30 이벤트 리스너 종류 AWT 이벤트 이벤트 리스너 종류 구현 메소드 MouseListener
mouseClicked(MouseEvent) mouseEntered(MouseEvent) mouseExited(MouseEvent) mousePressed(MouseEvent) mouseReleased(MouseEvent) WindowListener windowOpened(WindowEvent) windowClosing(WindowEvent) windowClosed(WindowEvent) windowActivated(WindowEvent) windowDeactivated(WindowEvent) windowIconified(WindowEvent) windowDeiconfied(WindowEvent)

31 이벤트 처리 3단계 이벤트 핸들러 위치에 따른 4가지 이벤트처리법 AWT 이벤트 1 단계. 이벤트소스를 결정한다. 2 단계.
이벤트리스너를 결정하고 리스너를 구현할 이벤트핸들러를 작성한다. 반드시 인터페이스를 구현한다. 3 단계. 이벤트소스와 이벤트리스너를 연결한다. 연결방법은 addXXXListener() 메소드를 이용한다. ( XXXListener 은 인터페이스명 이다. ) 이벤트 핸들러 위치에 따른 4가지 이벤트처리법 GUI 와 이벤트핸들러가 같은 클래스로 처리. GUI 와 이벤트핸들러가 다른 클래스로 처리. GUI 와 이벤트핸들러가 내부클래스로 처리. GUI 와 이벤트핸들러가 anonymous클래스로 처리.

32 이벤트 핸들러 위치에 따른 4가지 이벤트처리법 같은 클래스 처리

33 같은 클래스 처리 이벤트소스 분석에 의한 이벤트 처리 getActionCommand() getSource()

34 이벤트 핸들러 위치에 따른 4가지 이벤트처리법 다른 클래스 처리

35 이벤트 핸들러 위치에 따른 4가지 이벤트처리법 내부 클래스 처리

36 이벤트 핸들러 위치에 따른 4가지 이벤트처리법 anonymous 클래스 처리

37 정의 용도 방법 Adapter 클래스 2개 이상의 추상메소드를 가진 Listener 인터페이스를 미리 구현한 클래스이다.
추상메소드를 구현해야 한다. 필요하지 않는 메소드까지도 구현해야하는 불편함을 해소할 수 있다. 방법 Listener 인터페이스 대신 Adapter 클래스로 이벤트처리를 한다.

38 Adapter 클래스 Listener 와 Adapter

39 Adapter 클래스 예제

40 AWT 와 컴포넌트 Frame Panel LayoutManager 이벤트 처리 이벤트 처리 4가지 방법 Adapter
요약 정리 AWT 와 컴포넌트 Frame Panel LayoutManager 이벤트 처리 이벤트 처리 4가지 방법 Adapter


Download ppt "자바 5.0 프로그래밍."

Similar presentations


Ads by Google