즐거운프로그래밍

[자바] AWT 패키지의 이해(컨테이너)

수수께끼 고양이 2023. 10. 24. 13:09
728x90
반응형

 

컨테이너

자신의 영역 안에 다른 컴포넌트를 포함할 수 있는 컴포넌트

Window, Frame, Panel, Applet, Dialog 등이 있다.

 

1. Panel 컨테이너

컴포넌트를 그룹별로 모을 때 주로 사용하는 컨테이너이다. 컴포넌트를 Panel에 모으면 관리와 배치가 용이해지기 때문이다.

import java.awt.*;
import java.awt.event.*;

public class FrameTest {
    public static void main(String[] args) {
        Frame frame = new Frame();
        frame.setTitle("프레임 테스트");
        frame.setSize(600,400);
        frame.setLocation(100,100);
        frame.setResizable(false);


        Panel pane01 = new Panel();
        Panel pane02 = new Panel();
        Panel pane03 = new Panel();
        Panel pane04 = new Panel();
        Panel pane05 = new Panel();

        pane01.setBackground(Color.RED);
        pane02.setBackground(Color.BLUE);
        pane03.setBackground(Color.GREEN);
        pane04.setBackground(Color.ORANGE);
        pane05.setBackground(Color.GRAY);

        frame.add(pane01, "North");
        frame.add(pane02, "West");
        frame.add(pane03, "East");
        frame.add(pane04, "South");
        frame.add(pane05, "Center");

        Label label = new Label("문자열 : ");
        TextField textField = new TextField(20);
        pane01.add(label);
        pane01.add(textField);
        frame.add(pane01, "North");

        Checkbox chk01 = new Checkbox("체크박스 1번");
        pane02.add(chk01);
        frame.add(pane02, "West");

        List list = new List(3);
        list.add("리스트 1");
        list.add("리스트 2");
        pane03.add(list);
        frame.add(pane03, "East");

        Button button01 = new Button("확인");
        Button button02 = new Button("취소");
        pane04.add(button01);
        pane04.add(button02);
        frame.add(pane04, "South");

        TextArea textArea = new TextArea(15,25);
        pane05.add(textArea);
        frame.add(pane05, "Center");


        frame.setVisible(true);

        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                super.windowClosing(e);
                System.out.println("창을 닫습니다");
                System.exit(0);
            }
        });

        frame.addMouseMotionListener(new MouseAdapter() {
            @Override
            public void mouseMoved(MouseEvent e) {
                super.mouseMoved(e);
                System.out.println(".");
                System.out.println(e.paramString());
            }
        });
        frame.addKeyListener(new KeyAdapter() {
            @Override
            public void keyTyped(KeyEvent e) {
                super.keyTyped(e);
                System.out.println(e.getKeyChar()+e.getKeyCode());
            }
        });
    }
}

 

 

 

728x90
반응형