오라클자바커뮤니티에서 설립한 오엔제이프로그래밍
실무교육센터
(오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷 실무전문 강의)
AWT (Abstract Window Toolkit) 프로그래밍
- 윈도우 프로그래밍을 위한 UI 컴포넌트와 보조라이브러리를 모아놓은 툴 킷을 말합니다.
- 모든 윈도우 Component는 Component Class(자바 AWT의 모든 Component들이 가져야 하는 속성과 메소드를 가지고 있슴)로 부터 상속 을 받습니다.
- 이들 Component는 두가지로 구분되는데 다른 Component를 자신안에 둘수 있는 컨테이너, 또 다른 하나는 컨테이너 역할을 할수 없는 단순한 Component 가 있습니다.
- 관련 클래스는 Java.awt Package안에 포함되어 있습니다.
- 일정하게 정해진 모양이 없다는것은 장점 인듯하나 Component의 정렬등 기타 문제점으로 인해 현재는 Swing을 주로 사용 합니다.
- OS마다 사용하는 Window창, Font등이 다르므로 자바에서는 AWT를 제공하며 , 실행될때 각 OS에서 적합한 Component로 대체 됩니다. 현재 OS 의 각 Component를 Peer Component라고 한다.
- AWT 패키지의 각 Component가 생성 되거나 임의의 Container 또는 하위 Class에 등록 되어서 표시 되어야 할 때 해당 Component의 addNotify 메소드가 호출되며 여기 에서는 다시 java.awt.Toolkit의 createButton과 같은 메소드를 사용하여 현재 OS에 상응하는 Peer Component를 생성 합니다.
AWT Component의 종류
1. Window : 경계표시, 타이틀바등이 없는 단순한 사각형 윈도우 Component 자신안에 다른 Component를 담으면서 동시에 자신은 독립적인 윈도우를 생성
2. Frame : 경계표시와 타이틀바를 가지는 윈도우 Component(Window Class를 상속 받음) , 프레임은 실질적으로 사용되는 가장 기본적인 윈도우로 우리가 윈도우라 부르는 것은 보통 이 프레임을 말함
3. Button : 버튼을 표시하는 Component
4. Canvas : 빈 사각형 영역을 나타내는 Component(주로 그래픽이나 이미지를 표현 하는데 사용)
5.CheckBox : 선택된 상태와 선택되지 않은 상태 두가지를 가지는 Component(그룹 화 또는 개별로 존재 가능)
6. Choice : 흔히 팝업메뉴라고 불리는것, 여러요소중 하나를 선택
7.Dialog : 대화상자 윈도우, Frame위에서 작은 윈도우를 하나더 띄움
8.FileDialog : 파일을 선택할수 있는 파일대화상자
9.Label : 문자열을 나타내는데 사용되는 Component
10. List : 여러 개의 텍스트 목록을 나타내는Component(목록에서 하나또는 여러개 선택가능)
11. Panel : 다른 Component를 배치하는데 사용되는 간단한 Container Component, 판넬Panel은 윈도우(프레임) 안에 부착된 여러 컴포넌트들을 비슷한 기능끼리 함께 모아두는 컨테이너 입니다. 이런 점에서, Window 와 그 부속 컨테이너들은 독립된 윈도우를 구성하는 반면, 판넬은 독립적인 창 구실은 할 수 없고, 오로지 기존 윈도우의 한 컴포넌트로서만 사용 됩니다.
12. ScrollBar : 사용자가 어떤 영역안에서 값을 선택할수 있게 해 줍니다.
13. ScrollPane : 다른 Component를 담고서 스크롤바를 움직임에 따라 자동으로 다른 Component의 위치를 변경시켜주는 Component, 스크롤 부착창ScrollPane은 수평 및 수직 스크롤바를 부착하기 위한 창입니다.
14. TextField : 한줄로 된 Text입력 Component
15. TextArea : 여러줄 입력이 가능한 텍스트 입력 Component
종류는 아래와 같습니다.
GUI 프로그램의 구조
아래는 AWT를 이용한 윈도우를 띄우는 샘플 입니다.
import java.awt.*;
public class HelloWindow1 extends Frame {
public HelloWindow1(String title) {
super(title);
}
public static void main(String args[]) {
HelloWindow1 frame = new HelloWindow1("AWT Sample1"); frame.setSize(400,400);
frame.setVisible(true);
}
public void paint(Graphics g) {
g.drawString("HelloWindow1", 150, 150);
}
}
[결과]
댓글 없음:
댓글 쓰기