이번 강좌에서는 AWT(Abstract Windows Toolkit) 프로그래밍에 대해 알아 보겠습니다. 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); } } [결과] |