AWT ( Abstract Window Toolkit )
자바에서 GUI를 구현하기 위한 컨테이너 클래스들을 모아놓은 집합이다. java.awt 패키지에 들어있다.
컨테이너 : 윈도우, 프레임 대화상자, 패널등을 의미 컴포넌트를 담고있다.
컴포넌트 : 버튼, 체크박스, 리스트, 텍스트상자등 컨테이너에 덧붙여져서 사용되는요소.
레이아웃 : 컨테이너에 컴포넌트들을 어떻게 배치할 것인지에대한 요소.
* 컨테이너 (Frame )
window의 서브클래스로 프로그램창을 의미한다. 독립적으로 실행할 수 있다.
생성 : Frame f = new Frame(" 제목 ");
모양 : f.setSize(100,200); // 100: 가로길이 픽셀 , 200: 세로길이 필셀
출력 : f.setVisible(true); // 화면에 출력
예제코드)
1. import java.awt.*;
2.
3. public class FrameExample {
4. private Frame f;
5.
6. public FrameExample() {
7. f = new Frame("Java Programming Language");
8. }
9.
10. public void launchFrame() {
11. f.setSize(170,170);
12. f.setBackground(Color.blue);
13. f.setVisible(true);
14. }
15.
16. public static void main(String args[]) {
17. FrameExample guiWindow = new FrameExample();
18. guiWindow.launchFrame();
19. }
20. }
* 컨테이너 (Panel)
독립적으로 사용할 수 없고, 다른 window에 덧붙여서 사용된다.
생성 : Panel pan = new Panel();
삽입 : f.add(pan); // Frame 객체의 f에 생성한 판넬을 덧붙인다.
예제코드)
1. import java.awt.*;
2. public class FrameWithPanel {
3. private Frame f;
4. private Panel pan;
5.
6. public FrameWithPanel() {
7. f = new Frame("패널이 붙은 프레임");
8. pan = new Panel();
9. }
10.
11. public void launchFrame() {
12. f.setSize(200,200);
13. pan.setSize(100,100);
14. pan.setBackground(Color.red);
15. f.add(pan, BorderLayout.SOUTH);
16. f.setVisible(true);
17. }
18. public static void main(String args[]) {
19. FrameWithPanel guiWindow = new FrameWithPanel();
20. guiWindow.launchFrame();
21. }
22. }
* 레이아웃 매니저
Frame이나 Panel에 컴포넌트를 놓는 위치나 형태를 매니저를 통해서 컨트롤 한다.
FlowLayout : Panel의 기본 레이아웃 매니저 컴퍼넌트의 원래 크기가 유지되며
왼->오, 위->아래의 방향으로 삽입된 순서대로 배치.
BorderLayout : 기본 레이아웃 매니저 내부를 동, 서, 남, 북, 중앙으로 구분해서 컴포넌트를 배치한다. 컨테이너 크기에 따라 컴포넌트들의 크기가 바뀐다. 위치를 지정하지 안흥면 화면에 꽉 차게 나온다.
GridLayout : 바둑판모양으로 일정하게 컴포넌트를 배치한다. 컴포넌트의 크기는 모두 일정하며 컨테이너에 따 라 자동 조절된다.
CardLayout : 여러개의 카드를 겹쳐 놓은 것과 같은 모양으로 컴포넌트를 배치한다.
GridBagLayout : 컴포넌트의 위치와 크기를 마음대로 지정할 수 있지만 사용하기 매우 까다롭다.
'Programming > JAVA' 카테고리의 다른 글
JSP & Servlet (0) | 2010.03.21 |
---|---|
JAVA 이벤트 핸들링 (0) | 2010.02.25 |
JAVA java.io 패키지 (0) | 2010.02.24 |
JAVA Thread ( Cont. ) (0) | 2010.02.24 |
JAVA Thread (0) | 2010.02.23 |