1> AWT 란?
자바에서 그래픽 프로그램을 하기 위한 클래스 라이브러리를 제공해 주고 있는데, 이것을 Abstract Window Toolkit이라 한다. AWT란 그래픽 프로그램을 작성하기 위한 라이브러리라고 말할 수 있습니다.
AWT는 처음 java1.0에서 소개 되었으며 초기 AWT가 소개 될 때 한번 만들면 어디에서나 똑같이 동작한다고 선전을 했지만, 운영체제에따라 약간씩의 모양이 다르게 나타난다. 하지만 이것이 그다지 큰 단점은 이니다. 이를 보완해서 나온 것이 바로 swing 이다. AWT와 swing의 차이점은 swing에서 보다 다양한 라이브러리와 기능을 제공하며 좀 이쁘다는 것 외에는 그 사용맥락은 비슷하다. 하지만 아직 이 swing은 그다지 많이 사용되지는 않고 있다. 왜냐면 자바의 확장 패키지인 이 swing은 자바가상머신에 추가를 해야되고, 또한 아직 웹브라우저인 익스플로러에서 지원을 해 주지 않기 때문이다.(그건 MS사와 SUN 는 사이가 좋지 않기 때문이기도 하다.^^;) 굳이 사용하자면 html convert를 해줘야 때문에 잘 사용하지 않는다.
어쨌든 AWT와 swing는 거의 비슷한 맥락을 이루고 있으므로 AWT만 잘 다룬다면 swing으로 넘어가는데는 그다지 힘들지 않는다.
2> AWT 클래스 구조

AWT는 awt 패키지에 들어있다. 따라서 AWT를 사용하려면 awt를 import를 해야한다. 즉 클래스를 선언하기 전에 다음과 같은 문장이 반드시 나와야된다.
import java.awt.*;
우선 구조를 보면 AWT의 모든 클래스는 추상 클래스인 Component를 상속하고 있다. 이것은 Component 클래스가 가진 모든 메소드들을 공통적으로 사용할 수 있음을 말한다. ( 노란색은 추상클래스이다.)
AWT는 다음과 같이 나눌수 있다.
- 기본 컴포넌트: Button, Label, Choice, CheckBox, List, Canvas, ScrollBar
- 컨테이너 컴포넌트: Container, Panel, Window, Frame, Dialog, FileDialog(상속관계를 유심히)
- 텍스트 컴포넌트: TextComponent, TextArea, TextField
AWT의 구조는 기억을 해두길 바란다.
3> java.awt.Componet 클래스의 주요 메서드
- public Dimension getSize()
컴포넌트의 현재 크기를 Dimension 클래스 객체로 반환한다. Dimension 클래스는 hieght와 width를 멤버변수를 갖는 클래스로 가로, 세로 크기를 한 객체에 다 담을 수 있다. 즉 이 메소드를 이용하면 현재 컴포넌트 크기를 알 수 있다.
- public void setForeground(Color c)
pulbic void setBackground(Color c)
인자로 넘겨받은 Color 클래스 객체 c로 Foreground는 글자색을, Background은 배경색을 결정한다. Color 클래스는 색상을 객체 모델링 한 클래스이다.
- public void setFont(Font f)
컴포넌트의 현재 폰트를 설정한다. 인자로 Font 클래스 객체를 받는데 Font 클래스는 폰트와 관련된 정보를 갖고 있다.
- public void setEnabled(boolen b)
논리형 변수를 인자로 가지는데 인자가 false 이면 컴포넌트가 회색으로 변하면선 사용자의 입력에 반응하지 않는다. 이 메서드는 주로 TextField에 사용자가 입력하지 못하도록 할때 사용된다.
- void setBound(int x, int y, int width, int hieght)
void setSize(int width, int hieght) void pack()
이 메서드들은 모두 컴포넌트의 크기를 나타내는데 setBound()는 좌표(x, y)가 있어서 컴포넌트의 위치를 결정할 수 있다. 이에 반해 setSize()는 크기만 결정한다. pack()는 컴포넌트 크기가 아니고 컨테이너에만 해당되는데, 컴포넌트의 크기에 딱 맞게 컨테이너를 설정할때 사용한다. (여기서 pack()는 Window 클래스의 메서드이다.)
- void setVisible(boolean b)
인자로 주어진 논리형 변수값이 false이면 화면에서 사라지게 하고 true이면 나타나게 한다.
출처 : getJAVA™ |