Java의 정석 제 13 장 AWT와 애플릿 Java 정석 2010. 1. 14 남궁성 강의 castello@naver.com Chapter 13. AWT와 애플릿 http://www.javachobo.com Java의 정석 제 13 장 AWT와 애플릿 안녕하십니까? 자바의 정석의 저자 남궁성입니다. 지금부터 제7장 객체지향개념2의 두 번째 강의를 시작하겠습니다. 2010. 1. 14 남궁성 강의 castello@naver.com
Java 1. AWT(Abstract Window Toolkit) 의 정석 Chapter 13. AWT와 애플릿 http://www.javachobo.com 1. AWT(Abstract Window Toolkit) 1.1 AWT(Abstract Window Toolkit)란? 1.2 AWT의 구성 1.3 컴포넌트(Component) 1.4 컨테이너(Container) 2. AWT의 주요 컴포넌트 2.1 Frame 2.7 TextField 2.13 Dialog 2.2 Button 2.8 TextArea 2.14 FileDialog 2.3 Choice 2.9 Scrollbar 2.15 Font 2.4 List 2.10 Canvas 2.16 Color 세부목차인데요. 이 강의는 이와 같은 순서로 진행될 것입니다. 2.5 Label 2.11 Panel 2.6 Checkbox 2.12 ScrollPane 3. 메뉴 만들기 3.1 메뉴를 구성하는 컴포넌트 3.2 PopupMenu
Java 4. 레이아웃 매니저(Layout Manager) 4.1 레이아웃 매니저를 이용한 컴포넌트 배치 의 정석 Chapter 13. AWT와 애플릿 http://www.javachobo.com 4. 레이아웃 매니저(Layout Manager) 4.1 레이아웃 매니저를 이용한 컴포넌트 배치 4.2 BorderLayout 4.4 GridLayout 4.3 FlowLayout 4.5 CardLayout 5. 이벤트 처리(Event handling) 5.1 이벤트(Event)란? 5.2 이벤트 처리(Event handling) 5.3 ActionEvent 5.4 Adapter클래스 6. AWT의 그래픽 6.1 paint()와 Graphics 6.2 AWT쓰레드와 repaint() 세부목차인데요. 이 강의는 이와 같은 순서로 진행될 것입니다. 7. 애플릿(Applet) 7.1 애플릿(Applet)이란? 7.2 Applet의 생명주기(Life cycle) 7.3 Applet의 보안 제약(Security restriction) 7.4 Applet과 HTML태그 3
(Abstract Window Toolkit) Java 의 정석 Chapter 13. AWT와 애플릿 http://www.javachobo.com AWT (Abstract Window Toolkit)
1.1 AWT(Abstract Window Toolkit)란? Java 의 정석 Chapter 13. AWT와 애플릿 http://www.javachobo.com 1.1 AWT(Abstract Window Toolkit)란? ▶ AWT - GUI프로그래밍(윈도우 프로그래밍)을 위한 도구 - GUI프로그래밍에 필요한 다양한 컴포넌트를 제공한다. - Java로 구현하지 않고, OS의 컴포넌트를 그대로 사용한다. ▶ Swing - AWT를 확장한 GUI프로그래밍 도구 - AWT보다 더 많은 종류의 컴포넌트를 제공한다. - OS의 컴포넌트를 사용하지 않고, 순수한 Java로 구현하였다. 5 5
Java 1.2 AWT의 구성(1/3) 정석 - AWT관련 패키지는 모두 ‘java.awt’로 시작한다. Chapter 13. AWT와 애플릿 http://www.javachobo.com 1.2 AWT의 구성(1/3) - AWT관련 패키지는 모두 ‘java.awt’로 시작한다. - ‘java.awt’패키지와 ‘java.awt.event’패키지가 AWT의 핵심이다. 6 6
Java 1.2 AWT의 구성(2/3) 정석 - 모든 AWT컴포넌트의 최고 조상은 java.awt.Component클래스이다. Chapter 13. AWT와 애플릿 http://www.javachobo.com 1.2 AWT의 구성(2/3) - 모든 AWT컴포넌트의 최고 조상은 java.awt.Component클래스이다. (메뉴관련 컴포넌트 제외) - Container는 다른 컴포넌트를 담을 수 있는 컴포넌트이다. 7 7
Java 의 정석 Chapter 13. AWT와 애플릿 http://www.javachobo.com 1.2 AWT의 구성(3/3) - 메뉴관련 컴포넌트의 최고 조상은 java.awt.MenuComponent클래스이다. 8 8
Java 1.3 컴포넌트(Component) 정석 - 모든 AWT컴포넌트(메뉴관련 컴포넌트 제외)의 최고 조상 Chapter 13. AWT와 애플릿 http://www.javachobo.com 1.3 컴포넌트(Component) - 모든 AWT컴포넌트(메뉴관련 컴포넌트 제외)의 최고 조상 - 컴포넌트라면 반드시 있어야 하는 공통적인 메서드들이 정의되어 있다. 9 9
Java 1.4 컨테이너(Container) 정석 의 정석 Chapter 13. AWT와 애플릿 http://www.javachobo.com 1.4 컨테이너(Container) - 다른 컴포넌트를 포함할 수 있는 컴포넌트. Container클래스와 그 자손들 1. 독립적인 컨테이너 – 독립적으로 사용될 수 있으며, 다른 컴포넌트나 종속적인 컨테이너를 포함할 수 있다. 2. 종속적인 컨테이너 – 독립적으로 사용될 수 없으며, 다른 컨테이너에 포함되어야 한다. 다른 컴포넌트나 종속적인 컨테이너를 포함할 수 있다. 10 10
1.4 컨테이너(Container) – 주요 메서드 Java 의 정석 Chapter 13. AWT와 애플릿 http://www.javachobo.com 1.4 컨테이너(Container) – 주요 메서드 - add()를 사용해서 컴포넌트를 컨테이너에 담는다. - 컨테이너에 담긴 컴포넌트는 컨테이너의 전경색, 배경색, 폰트 등의 설정을 그대로 따르게 된다.(나중에 변경가능) 11 11
2. AWT의 주요 컴포넌트 Java 정석 의 Chapter 13. AWT와 애플릿 12 http://www.javachobo.com 2. AWT의 주요 컴포넌트 12
Java 2.1 Frame 정석 - titlebar와 최대화, 최소화, 닫기 버튼을 가진 윈도우(컨테이너) 의 Chapter 13. AWT와 애플릿 http://www.javachobo.com 2.1 Frame - titlebar와 최대화, 최소화, 닫기 버튼을 가진 윈도우(컨테이너) 13 13
Java 2.2 Button 정석 - 사용자가 클릭했을 때 어떤 작업이 수행되도록 할 때 사용하는 컴포넌트 의 Chapter 13. AWT와 애플릿 http://www.javachobo.com 2.2 Button - 사용자가 클릭했을 때 어떤 작업이 수행되도록 할 때 사용하는 컴포넌트 14 14
Java 2.3 Choice 정석 - 여러 item 중에서 하나를 선택할 수 있게 해주는 컴포넌트 의 Chapter 13. AWT와 애플릿 http://www.javachobo.com 2.3 Choice - 여러 item 중에서 하나를 선택할 수 있게 해주는 컴포넌트 15 15
Java 2.4 List - 메서드 정석 - 여러 item 중에서 하나를 선택할 수 있게 해주는 컴포넌트 의 Chapter 13. AWT와 애플릿 http://www.javachobo.com 2.4 List - 메서드 - 여러 item 중에서 하나를 선택할 수 있게 해주는 컴포넌트 16 16
Java 2.4 List - 예제 정석 의 Chapter 13. AWT와 애플릿 17 17 http://www.javachobo.com 2.4 List - 예제 17 17
Java 2.5 Label 정석 - 화면에 텍스트를 표시하는데 사용되는 컴포넌트 의 Chapter 13. AWT와 애플릿 18 http://www.javachobo.com 2.5 Label - 화면에 텍스트를 표시하는데 사용되는 컴포넌트 18 18
Java 2.6 Checkbox - 메서드 정석 - ‘선택/비선택’을 표현하는데 사용되는 컴포넌트. 의 정석 Chapter 13. AWT와 애플릿 http://www.javachobo.com 2.6 Checkbox - 메서드 - ‘선택/비선택’을 표현하는데 사용되는 컴포넌트. - CheckboxGroup을 사용하면 ‘4지선다’와 같이 여러 값 중의 하나를 선택 하게 할 수 있다. 19 19
Java 2.6 Checkbox - 예제 정석 의 Chapter 13. AWT와 애플릿 20 20 http://www.javachobo.com 2.6 Checkbox - 예제 20 20
Java 2.7 TextField - 메서드 정석 - 사용자로부터 데이터를 자유롭게 입력받을 수 있는 컴포넌트 의 정석 Chapter 13. AWT와 애플릿 http://www.javachobo.com 2.7 TextField - 메서드 - 사용자로부터 데이터를 자유롭게 입력받을 수 있는 컴포넌트 - 한 줄만 입력할 수 있어서 비교적 길지 않은 값의 입력에 사용된다. 21 21
Java 2.7 TextField - 예제 정석 의 Chapter 13. AWT와 애플릿 22 22 http://www.javachobo.com 2.7 TextField - 예제 22 22
Java 2.8 TextArea - 메서드 정석 - 여러 줄의 텍스트를 입력하거나 보여줄 수 있는 편집가능한 컴포넌트 의 Chapter 13. AWT와 애플릿 http://www.javachobo.com 2.8 TextArea - 메서드 - 여러 줄의 텍스트를 입력하거나 보여줄 수 있는 편집가능한 컴포넌트 23 23
Java 2.8 TextArea - 예제 정석 의 Chapter 13. AWT와 애플릿 24 24 http://www.javachobo.com 2.8 TextArea - 예제 24 24
Java 2.9 Scrollbar 정석 - 사용자가 정해진 범위에서 값을 조절할 수 있게 해주는 컴포넌트 의 Chapter 13. AWT와 애플릿 http://www.javachobo.com 2.9 Scrollbar - 사용자가 정해진 범위에서 값을 조절할 수 있게 해주는 컴포넌트 25 25
Java 2.10 Canvas 정석 - 주로 그림을 그리거나 이미지를 위한 공간으로 사용되는 컴포넌트 의 Chapter 13. AWT와 애플릿 http://www.javachobo.com 2.10 Canvas - 주로 그림을 그리거나 이미지를 위한 공간으로 사용되는 컴포넌트 26 26
Java 2.11 Panel 정석 - 빈 평면 공간만 가지고 있는 종속적인 컨테이너. 의 정석 Chapter 13. AWT와 애플릿 http://www.javachobo.com 2.11 Panel - 빈 평면 공간만 가지고 있는 종속적인 컨테이너. - Panel안에 Panel을 넣을 수 있어서 컴포넌트의 다양한 배치에 유용하다. 27 27
Java 2.12 ScrollPane 정석 - 단 하나의 컴포넌트만 포함할 수 있는 종속적인 컨테이너. Chapter 13. AWT와 애플릿 http://www.javachobo.com 2.12 ScrollPane - 단 하나의 컴포넌트만 포함할 수 있는 종속적인 컨테이너. - 제한된 공간에서 큰 컴포넌트를 화면에 보여줄 때 사용한다. 28 28
Java 2.13 Dialog 정석 - Frame과 같은 독립적인 컨테이너. titlebar와 닫기버튼을 가지고 있다. 의 정석 Chapter 13. AWT와 애플릿 http://www.javachobo.com 2.13 Dialog - Frame과 같은 독립적인 컨테이너. titlebar와 닫기버튼을 가지고 있다. - 주로 화면에 메시지창을 보여주거나 사용자로부터 입력을 받을 때 사용 29 29
Java 2.14 FileDialog 정석 - 파일을 열거나 저장할 때 사용되는 Dialog 의 Chapter 13. AWT와 애플릿 http://www.javachobo.com 2.14 FileDialog - 파일을 열거나 저장할 때 사용되는 Dialog 30 30
Java 2.15 Font 정석 - Component클래스의 setFont(Font f)를 사용하면, 폰트를 변경할 수 있다. Chapter 13. AWT와 애플릿 http://www.javachobo.com 2.15 Font - Component클래스의 setFont(Font f)를 사용하면, 폰트를 변경할 수 있다. 31 31
Java 2.16 Color 정석 - 색의 표현에 사용되는 클래스. RGB값이나 미리 정의된 색 사용가능. 의 Chapter 13. AWT와 애플릿 http://www.javachobo.com 2.16 Color - 색의 표현에 사용되는 클래스. RGB값이나 미리 정의된 색 사용가능. 32 32
Java 의 정석 Chapter 13. AWT와 애플릿 http://www.javachobo.com 3. 메뉴 만들기 33
Java 3.1 메뉴를 구성하는 컴포넌트 정석 의 Chapter 13. AWT와 애플릿 34 34 http://www.javachobo.com 3.1 메뉴를 구성하는 컴포넌트 34 34
Java 3.1 메뉴를 구성하는 컴포넌트 - 예제 정석 의 Chapter 13. AWT와 애플릿 35 35 http://www.javachobo.com 3.1 메뉴를 구성하는 컴포넌트 - 예제 35 35
Java 3.2 PopupMenu 정석 - 윈도우(Frame) 내에서 오른쪽 마우스버튼을 누르면 나타나는 메뉴 의 Chapter 13. AWT와 애플릿 http://www.javachobo.com 3.2 PopupMenu - 윈도우(Frame) 내에서 오른쪽 마우스버튼을 누르면 나타나는 메뉴 36 36
4. 레이아웃 매니저 (Layout Manager) Java 정석 의 Chapter 13. AWT와 애플릿 37 http://www.javachobo.com 4. 레이아웃 매니저 (Layout Manager) 37
Java 4.1 레이아웃 매니저를 이용한 컴포넌트 배치 정석 의 정석 Chapter 13. AWT와 애플릿 http://www.javachobo.com 4.1 레이아웃 매니저를 이용한 컴포넌트 배치 - 레이아웃 매니저는 컨테이너에 포함된 컴포넌트의 배치를 자동관리한다. - 레이아웃 매니저를 사용하면 컨테이너의 크기가 변경되거나 새로운 컴포넌트가 추가될 때, 컴포넌트를 재배치하는 코드를 작성할 필요가 없다. - AWT에서는 아래와 같이 5개의 레이아웃 매니저를 제공한다. BorderLayout, FlowLayout, GridLayout, CardLayout, GridbagLayout 38 38
Java 4.2 BorderLayout 정석 - 모두 5개의 영역으로 나누고, 각 영역에 하나의 컴포넌트만 넣을 수 있다. Chapter 13. AWT와 애플릿 http://www.javachobo.com 4.2 BorderLayout - 모두 5개의 영역으로 나누고, 각 영역에 하나의 컴포넌트만 넣을 수 있다. - 한 영역에 하나 이상의 컴포넌트를 넣으려면 Panel을 사용하면 된다. 39 39
Java 4.3 FlowLayout 정석 - 컴포넌트를 워드프로세서와 같은 방식, 즉 왼쪽에서 오른쪽으로 배치한다. 의 정석 Chapter 13. AWT와 애플릿 http://www.javachobo.com 4.3 FlowLayout - 컴포넌트를 워드프로세서와 같은 방식, 즉 왼쪽에서 오른쪽으로 배치한다. - 3가지 정렬방식(왼쪽, 가운데, 오른쪽)이 가능하다. 40 40
Java 4.4 GridLayout 정석 - 컴포넌트를 워드프로세서와 같은 방식, 즉 왼쪽에서 오른쪽으로 배치한다. 의 정석 Chapter 13. AWT와 애플릿 http://www.javachobo.com 4.4 GridLayout - 컴포넌트를 워드프로세서와 같은 방식, 즉 왼쪽에서 오른쪽으로 배치한다. - 3가지 정렬방식(왼쪽, 가운데, 오른쪽)이 가능하다. 41 41
Java 4.5 CardLayout 정석 - 여러 컨테이너를 슬라이드처럼 바꿔가며 보여줄 수 있다. 의 정석 Chapter 13. AWT와 애플릿 http://www.javachobo.com 4.5 CardLayout - 여러 컨테이너를 슬라이드처럼 바꿔가며 보여줄 수 있다. - 앨범이나 퀴즈 또는 설치 프로그램에 주로 사용된다. 42 42
Java 4.5 CardLayout - 예제 정석 의 Chapter 13. AWT와 애플릿 43 43 http://www.javachobo.com 4.5 CardLayout - 예제 43 43
5. 이벤트 처리 (Event handling) Java 정석 의 Chapter 13. AWT와 애플릿 44 http://www.javachobo.com 5. 이벤트 처리 (Event handling) 44
Java 5.1 이벤트(Event)란? 정석 - 사용자 또는 프로그램에 의해 발생할 수 있는 하나의 사건. 의 Chapter 13. AWT와 애플릿 http://www.javachobo.com 5.1 이벤트(Event)란? - 사용자 또는 프로그램에 의해 발생할 수 있는 하나의 사건. 45 45
5.2 이벤트 처리(Event handling) Java 의 정석 Chapter 13. AWT와 애플릿 http://www.javachobo.com 5.2 이벤트 처리(Event handling) - 이벤트가 발생했을 때, 어떤 작업이 수행되도록 코드를 작성하는 것 46 46
5.2 이벤트 처리(Event handling) - 예제 Java 의 정석 Chapter 13. AWT와 애플릿 http://www.javachobo.com 5.2 이벤트 처리(Event handling) - 예제 47 47
Java 5.3 ActionEvent 정석 - 컴포넌트에 정의된 특정 동작이 수행되었을 때 발생하는 고수준 이벤트 Chapter 13. AWT와 애플릿 http://www.javachobo.com 5.3 ActionEvent - 컴포넌트에 정의된 특정 동작이 수행되었을 때 발생하는 고수준 이벤트 - Button을 누르는 방법은 두 가지(마우스 클릭, spacebar누르기)가 있다. - Button을 누르면, MouseEvent나 KeyEvent가 발생하지만… ActionEvent도 발생한다. - MouseEvent와 KeyEvent에 각각 별도의 이벤트처리를 하는 것보다 ActionEvent에만 이벤트처리를 하는 것이 낫다.(코드의 중복제거) 48 48
Java 5.4 Adapter클래스 정석 - Listener인터페이스를 아무런 내용없이 구현해 놓은 클래스 의 Chapter 13. AWT와 애플릿 http://www.javachobo.com 5.4 Adapter클래스 - Listener인터페이스를 아무런 내용없이 구현해 놓은 클래스 49 49
Java 의 정석 Chapter 13. AWT와 애플릿 http://www.javachobo.com 6. AWT의 그래픽 50
Java 6.1 paint()와 Graphics 정석 의 정석 Chapter 13. AWT와 애플릿 http://www.javachobo.com 6.1 paint()와 Graphics - Component클래스의 paint()는 컴포넌트에 그림을 그리기 위한 것이다. - 컴포넌트에 그림을 그리려면, paint()를 알맞게 오버라이딩하면 된다. - 모든 컴포넌트에는 Graphics객체가 있으며, getGraphics()로 얻을 수 있다. - Graphics클래스는 그림을 그리는데 필요한 다양한 메서드를 제공한다. 문자 출력, font와 color지정, 다양한 선과 도형, 이미지 출력 등… 51 51
Java 6.2 AWT쓰레드와 repaint() 정석 의 정석 Chapter 13. AWT와 애플릿 http://www.javachobo.com 6.2 AWT쓰레드와 repaint() - AWT쓰레드는 다음과 같은 경우, paint()를 자동호출해서 화면을 갱신한다. - 화면이 강제적으로 다시 그려지게 하려면 repaint()를 호출하면 된다. - 화면갱신 요청을 받으면, AWT쓰레드는 update()를 호출하고, update()는 화면을 지운 후에 paint()를 호출한다. 52 52
Java 6.2 AWT쓰레드와 repaint() - 예제 정석 의 Chapter 13. AWT와 애플릿 53 53 http://www.javachobo.com 6.2 AWT쓰레드와 repaint() - 예제 53 53
7. 애플릿(Applet) Java 정석 의 Chapter 13. AWT와 애플릿 54 http://www.javachobo.com 7. 애플릿(Applet) 54
Java 7.1 애플릿(Applet)이란? 정석 - 웹브라우저를 통해 실행될 수 있는 ‘작은 어플리케이션(Applet)’ 의 Chapter 13. AWT와 애플릿 http://www.javachobo.com 7.1 애플릿(Applet)이란? - 웹브라우저를 통해 실행될 수 있는 ‘작은 어플리케이션(Applet)’ 55 55
7.2 Applet의 생명주기(Life cycle) Java 의 정석 Chapter 13. AWT와 애플릿 http://www.javachobo.com 7.2 Applet의 생명주기(Life cycle) - 애플릿이 담긴 HTML페이지가 브라우저에 로딩되면서 애플릿은 시작된다. 56 56
7.3 Applet의 보안 제약(Security restriction) Java 의 정석 Chapter 13. AWT와 애플릿 http://www.javachobo.com 7.3 Applet의 보안 제약(Security restriction) - 애플릿은 외부로부터 다운받는 프로그램이므로 잠재적인 위험요소가 있다. - 사용자의 컴퓨터를 보호하기 위해 다음과 같은 ‘보안 제약’을 정해놓았다. 1. 사용자의 컴퓨터에 있는 실행파일(*.exe, *.com, *.bat)을 실행하는 것 Runtime rt = Runtime.getRuntime(); rt.exec("C:\\WINDOWS\\system32\\calc.exe"); // 계산기를 실행시킨다. 2. 사용자 컴퓨터의 파일을 읽거나 쓰기 FileWriter fw = new FileWriter("test.txt"); // test.txt에 abc를 출력한다. fw.write("abc"); 3. 사용자 컴퓨터의 정보를 읽기 String userName = System.getProperty("user.name"); // 사용자계정 String dir = System.getProperty("java.home"); // JDK가 설치된 위치 4. 애플릿을 제공한 서버가 아닌 다른 컴퓨터에서 소켓 열기 5. 네이티브 메서드(native method) 호출하기 57 57
Java 7.4 Applet과 HTML태그 정석 의 Chapter 13. AWT와 애플릿 58 58 http://www.javachobo.com 7.4 Applet과 HTML태그 58 58
감사합니다. http://www.javachobo.com Java 정석 의 정석 Chapter 13. AWT와 애플릿 http://www.javachobo.com 감사합니다. 더 많은 동영상강좌를 아래의 사이트에서 구하실 수 있습니다. http://www.javachobo.com 이것으로 제 13 장 AWT와 애플릿에 대한 강의를 모두 마치겠습니다. 감사합니다. 이 동영상강좌는 비상업적 용도일 경우에 한해서 저자의 허가없이 배포하실 수 있습니다. 그러나 일부 무단전제 및 변경은 금지합니다. 관련문의 : 남궁성 castello@naver.com