본문 바로가기

프로그램 이론/JAVA

[JAVA]AWT와 애플릿

1. AWT와 애플릿

  1.1. AWT란?

    - AWT

     - GUI프로그래밍(윈도우 프로그래밍)을 위한 도구

     - GUI프로그래밍에 필요한 다양한 컴포넌트를 제공한다.

     - Java로 구현하지 않고, OS의 컴포넌트를 그대로 사용한다.


    - Swing

     - AWT를 확장한 GUI프로그래밍 도구

     - AWT보다 더 많은 종류의 컴포넌트를 제공한다.

     - OS의 컴포넌트를 사용하지 않고, 순수한 Java로 구현하였다.


  1.2. AWT의 구성

    - AWT관련 패키지는 모두 java.awt로 시작한다.

    - java.awt패키지와 java.awt.event패키지가 AWT의 핵심이다.


 - 모든 AWT컴포넌트의 최고 조상은 java.awt.Component클래스이다.(메뉴관련 컴포넌트 제외)

 - Container는 다른 컴포넌트를 담을 수 있는 컴포넌트이다.


  - 메뉴관련 컴포넌트의 최고 조상은 java.awt.MenuComponent클래스이다.


 1.3. 컴포넌트(Component)

   - 모든 AWT컴포넌트(메뉴관련 컴포넌트 제외)의 최고 조상

   - 컴포넌트라면 반드시 있어야 하는 공통적인 메서드들이 정의되어 있다.


 1.4. 컨테이너(Container)

   - 다른 컴포넌트를 포함할 수 있는 컴포넌트, Container클래스와 그 자손들


 1.4. 컨테이너 - 주요메서드

   - add()를 사용해서 컴포넌트를 컨테이너에 담는다.

   - 컨테이너에 담긴 컴포넌트는 컨테이너의 전경색, 배경색, 폰트 등의 설정을 그대로 따르게 된다.

     (나중에 변경가능)


 2. AWT의 주요 컴포넌트

   2.1. Frame

    - titlebar와 최대화, 최소화, 닫기 버튼을 가진 윈도우(컨테이너)


 2.2. Button

  - 사용자가 클릭했을 때 어떤 작업이 수행되도록 할 때 사용하는 컴포넌트


 2.3. Choice

   - 여러 item 중에서 하나를 선택할 수 있게 해주는 컴포넌트


 2.4. List - 메서드

   - 여러 item 중에서 하나를 선택할 수 있게 해주는 컴포넌트


 


 2.5. Label

  - 화면에 텍스트를 표시하는데 사용되는 컴포넌트


 2.6. Checkbox - 메서드

   - 선택/비선택을 표현하는데 사용되는 컴포넌트

   - CheckboxGroup을 사용하면 사지선다와 같이 여러 값 중의 하나를 선택하게 할 수 있다.


 


 2.7. TextField - 메서드

   - 사용자로부터 데이터를 자유롭게 입력받을 수 있는 컴포넌트

   - 한 줄만 입력할 수 있어서 비교적 길지 않은 값의 입력에 사용된다.


 


 2.8. TextArea - 메서드

   - 여러 줄의 텍스트를 입력하거나 보여줄 수 있는 편집가능한 컴포넌트


 


 2.9. Scrollbar

   - 사용자가 정해진 범위에서 값을 조절할 수 있게 해주는 컴포넌트


 2.10. Canvas

   - 주로 그림을 그리거나 이미지를 위한 공간으로 사용되는 컴포넌트


 2.11. Panel

   - 빈 평면 공간만 가지고 있는 종속적인 컨테이너

   - Panel안에 Panel을 넣을 수 있어서 컴포넌트의 다양한 배치에 유용하다.


 2.12. ScrollPan

   - 단 하나의 컴포넌트만 포함할 수 있는 종속적인 컨테이너

   - 제한된 공간에서 큰 컴포넌트를 화면에 보여줄 때 사용한다.


 2.13. Dialog

   - Frame과 같은 독립적인 컨테이너. titlebar와 닫기버튼을 가지고 있다.

   - 주로 화면에 메시지창을 보여주거나 사용자로부터 입력을 받을 때 사용


  2.14. FileDialog

    - 파일을 열거나 저장할 때 사용되는 Dialog


  2.15. Font

    - Component클래스의 setFont(Font f)를 사용하면, 폰트를 변경할 수 있다.


 2.16. Color

  - 색의 표현에 사용되는 클래스 RGB값이나 미리 정의된 색 사용가능


3. 메뉴 만들기

 3.1. 메뉴를 구성하는 컴포넌트


 3.2. PopupMenu

   - 윈도우(Frame)내에서 오른쪽 마우스버튼을 누르면 나타나는 메뉴


 4. 레이아웃 매니저

  4.1. 레이아웃 매니저를 이용한 컴포넌트 배치

    - 레이아웃 매니저는 컨테이너에 포함된 컴포넌트의 배치를 자동관리한다.

    - 레이아웃 매니저를 사용하면 컨테이너의 크기가 변경되거나 새로운 컴포넌트가 추가될 때,

      컴포넌트를 재배치하는 코드를 작성할 필요가 없다.

    - AWT에서는 아래와 같이 5개의 레이아웃 매니저를 제공한다.


 4.2. BoarderLayout

   - 모두 5개의 영역으로 나누고, 각 영역에 하나의 컴포넌트만 넣을 수 있다.

   - 한 영역에 하나 이상의 컴포넌트를 넣으려면 Panel을 사용하면 된다.


 4.3. FlowLayout

   - 컴포넌트를 워드프로세서와 같은 방식, 즉 왼쪽에서 오른쪽으로 배치한다.

   - 3가지 정렬방식(왼쪽,가운데,오른쪽)이 가능하다.


 4.4. GridLayout

   - 컴포넌트를 워드프로세서와 같은 방식, 즉 왼쪽에서 오른쪽으로 배치한다.

   - 3가지 정렬방식(왼쪽,가운데,오른쪽)이 가능하다.


 4.5. CardLayout

   - 여러 컨테이너를 슬라이드처럼 바꿔가며 보여줄 수 있다.

   - 앨범이나 퀴즈 또는 설치 프로그램에 주로 사용된다.


 5. 이벤트 처리

   5.1. 이벤트란?

     - 사용자 또는 프로그램에 의해 발생할 수 있는 하나의 사건


 5.2. 이벤트 처리

   - 이벤트가 발생했을 때, 어떤 작업이 수행되도록 코드를 작성하는 것


 


 5.3. ActionEvent

   - 컴포넌트에 정의된 특정 동작이 수행되었을 때 발생하는 고수준 이벤트

   - Button을 누르는 방법은 두 가지(마우스 클릭, spacebar누르기)가 있다.

   - Button을 누르면, MouseEvent나 KeyEvent가 발생하지만 ActionEvent도 발생한다.

   - MouseEvent와 KeyEvent에 각각 별도의 이벤트처리를 하는 것보다 ActionEvent에만 이벤트처리를

     하는 것이 낫다(코드의 중복제거)


 5.4. Adapter클래스

   - Listener인터페이스를 아무런 내용없이 구현해 놓은 클래스


 6. AWT의 그래픽

  6.1. paint()와 Graphics


 6.2. AWT쓰레드와 repaint()



 7. 애플릿(Applet)

  7.1. 애플릿이란?

    - 웹브라우저를 통해 실행될 수 있는 작은 어플리케이션


7.2. Applet의 생명주기


 7.3. Applet의 보안 제약


 7.4. Applet과 HTML태그