본문 바로가기
☕Java/Java 기본

[20210527] AWT 요소를 이용한 GUI 프로그래밍

by 캔 2021. 5. 27.

package guiprogramming;

import java.awt.Button;
import java.awt.Checkbox;
import java.awt.CheckboxGroup;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Label;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

import guiprogramming.AwtEx.Handler5;

public class AwtEx extends Frame implements ActionListener, WindowListener {
	Frame frame;
	MenuBar menuBar;
	Menu menu1, menu2, menu3, menu4, menu5, menu6;
	MenuItem menuItem1, menuItem2, menuItem3, menuItem4, menuItem5, menuItem6;
	Label label1, label2;
	TextField textField1, textField2;
	Button btn1, btn2, btn3, btn4, btn5;
	Checkbox checkbox1, checkbox2, checkbox3;
	CheckboxGroup checkboxGroup;
	Checkbox checkbox4, checkbox5, checkbox6;//라디오버튼
	TextArea textarea;
	
	AwtEx(String title) {
		
		super(title);
		menuBar =new MenuBar();
		menu1 = new Menu("파일");
		menu2 = new Menu("편집");
		menu3 = new Menu("실행");
		menu4 = new Menu("옵션");
		menu5 = new Menu("창");
		menu6 = new Menu("도움말");
		
		MenuItem menuItem1 = new MenuItem("새 파일");
		MenuItem menuItem2 = new MenuItem("열기");
		MenuItem menuItem3 = new MenuItem("저장");
		MenuItem menuItem4 = new MenuItem("잘라내기");
		MenuItem menuItem5 = new MenuItem("복사");
		MenuItem menuItem6 = new MenuItem("붙여넣기");
		
		menuBar.add(menu1);
		menuBar.add(menu2);
		menuBar.add(menu3);
		menuBar.add(menu4);
		menuBar.add(menu5);
		menuBar.add(menu6);
		
		menu1.add(menuItem1);
		menu1.add(menuItem2);
		menu1.add(menuItem3);
		menu2.add(menuItem4);
		menu2.add(menuItem5);
		menu2.add(menuItem6);
		
		setSize(1000, 800);
		setLocation(400, 200);
		setVisible(true);
		setMenuBar(menuBar);
		
		this.addWindowListener(this);
		
		setLayout(null);
		
		label1 =new Label("ID:", Label.RIGHT);
		textField1 = new TextField(10);
		label2 =new Label("Password:", Label.RIGHT);
		textField2 = new TextField(10);
		btn1 = new Button("확인1");
		btn2 = new Button("확인2");
		btn3 = new Button("확인3");
		btn4 = new Button("확인4");
		btn5 = new Button("닫기");
		checkbox1 = new Checkbox("항목1", true);
		checkbox2 = new Checkbox("항목2", false);
		checkbox3 = new Checkbox("항목3", false);
		checkboxGroup = new CheckboxGroup();
		checkbox4 = new Checkbox("항목1", true);
		checkbox5 = new Checkbox("항목2", false);
		checkbox6 = new Checkbox("항목3", false);
		textarea = new TextArea();
		

		label1.setSize(80, 30);
		label1.setLocation(0, 60);
		label2.setSize(80, 30);
		label2.setLocation(0, 100);
		textField1.setSize(100, 30);
		textField1.setLocation(90, 60);
		textField2.setSize(100, 30);
		textField2.setLocation(90, 100);
		checkbox1.setSize(80, 30);
		checkbox1.setLocation(90, 150);
		checkbox2.setSize(80, 30);
		checkbox2.setLocation(180, 150);
		checkbox3.setSize(80, 30);
		checkbox3.setLocation(270, 150);
		checkbox4.setSize(80, 30);
		checkbox4.setLocation(90, 200);
		checkbox5.setSize(80, 30);
		checkbox5.setLocation(180, 200);
		checkbox6.setSize(80, 30);
		checkbox6.setLocation(270, 200);
		checkbox4.setCheckboxGroup(checkboxGroup);
		checkbox5.setCheckboxGroup(checkboxGroup);
		checkbox6.setCheckboxGroup(checkboxGroup);
		btn1.setSize(80,30);
		btn1.setLocation(30, 250);
		btn2.setSize(80,30);
		btn2.setLocation(130, 250);
		btn3.setSize(80,30);
		btn3.setLocation(230, 250);
		btn4.setSize(80,30);
		btn4.setLocation(330, 250);
		btn5.setSize(80,30);
		btn5.setLocation(430, 250);
		textarea.setSize(960, 200);
		textarea.setLocation(20, 300);
		
		add(checkbox1);
		add(checkbox2);
		add(checkbox3);
		add(checkbox4);
		add(checkbox5);
		add(checkbox6);
		add(label1);
		add(textField1);
		add(label2);
		add(textField2);
		add(btn1);
		add(btn2);
		add(btn3);
		add(btn4);
		add(btn5);
		add(textarea);
		
		btn1.addActionListener(this);
		Handler5 hd5 = new Handler5();
		btn5.addActionListener(hd5);
	}
	
	public static void main(String[] args) {
		new AwtEx("WindowForm");
	}
	class Handler5 implements ActionListener{

		@Override
		public void actionPerformed(ActionEvent e) {
			System.exit(0);
		}
	}
	@Override
	public void actionPerformed(ActionEvent e) {
		
		Object obj = e.getSource();
		if(obj == btn1) {
			this.setBackground(Color.BLACK);
		}
	}

	@Override
	public void windowOpened(WindowEvent e) {
		System.out.println("윈도우 열림.");
		System.out.println("window opened");
		
	}
	@Override
	public void windowClosing(WindowEvent e) {
		System.out.println("window closing");
		System.exit(0);
	}
	@Override
	public void windowClosed(WindowEvent e) {
		System.out.println("window closed");		
	}
	@Override
	public void windowIconified(WindowEvent e) {
		System.out.println("window Iconfied");		
	}
	@Override
	public void windowDeiconified(WindowEvent e) {
		System.out.println("window deiconified");		
	}
	@Override
	public void windowActivated(WindowEvent e) {
		System.out.println("윈도우 활성화됨.");
		System.out.println("window activated");		
	}
	@Override
	public void windowDeactivated(WindowEvent e) {
		System.out.println("window deactivated");		
	}
}

AWT의 구성요소 대부분을 이용해서 GUI를 구성해보았다.