2017 - 08 - 30 (수)
참고 도서 : 자바의 정석(남궁성 저, 도우출판)
1 . AWT
AWT ?
AWT(Abstract Window Toolkit)은 이름에서 알 수 있듯이 Window프로그래밍(GUI프로그래밍)을 하기 위한 도구이다. AWT는 GUI어플리케이션의 개발에 필요한 여러 개의 관련 패키지와 클래스의 집합으로 구서오디어 있으며, 이들을 이용하면 윈도우와 같은 GUI어플리케이션을 쉽고 편리하게 작성할 수 있다.
최근 발전한 Front-end단의 프로그래밍언어들의 발전으로 AWT를 많이 사용하지 않는다고는한다. 하지만 AWT와 후에 학습할 안드로이드가 관련이 있다고 하니 알아둘 필요가 있다.
AWT로 로그인 화면 구성하기
Frame 오브젝트 : 컨테이너를 만들어준다.
- setSize() : Frame 의 사이즈를 지정해준다.
- setVisible(true) : Frame을 가시화한다.
- setLayout() : Frame의 배치방법을 정해준다.
- add() : Frame에 컴포넌트들을 추가해준다. ex) 버튼이나 라벨, 텍스트필드 등
Label 오브젝트 : 제목 같은 것이다. 어떠한 텍스트필드에 제목을 지정해준다.
Button 오브젝트 : 이벤트를 발생시켜주는 매개체 역할을 할 것이다.
TextFiled 오브젝트 : 텍스트 입력창이다.
- setBounds() : 해당 Label을 컨테이너의 특정 좌표에 위치시켜준다.
- 이외에도 배치 및 사이즈에 관련한 메서드들 존재한다.
package View;
import java.awt.Button;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextField;
public class Resister {
public Resister(){
Frame frame = new Frame("register"); // register 라는 이름의 frame을 하나만들어줌
frame.setSize(1000, 1000);
frame.setVisible(true);
Button bt = new Button("로그인");
Button bt1 = new Button("회원가입");
//로그인 버튼과 회원가입 버튼을 만들어주기위해 버튼 두개 생성
frame.setLayout(null);
Label lid = new Label ("ID:", Label.RIGHT);
Label lid1 = new Label ("PASSWORD:", Label.RIGHT);
TextField tfiled = new TextField(15); // id
TextField tfiled1 = new TextField(15); // pw
frame.add(bt);
bt.setBounds(150, 400, 150, 30);
frame.add(bt1);
bt1.setBounds(350, 400, 150, 30);
frame.add(lid);
lid.setBounds(100, 100, 150, 30);
frame.add(lid1);
lid1.setBounds(100, 150, 150, 30);
frame.add(tfiled);
tfiled.setBounds(250, 100, 150, 30);
frame.add(tfiled1);
tfiled1.setBounds(250, 150, 150, 30);
}
}
이벤트 처리
위에서 만들어준 로그인 Frame 에서 버튼을 눌렀을 때 혹은 종료 버튼을 눌렀을 때 어떠한 동작을 할 필요가 있다.
WindowEvent (WindowAdapter 오브젝트)
//종료이벤트 (WindowEvent)
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class WindowController extends WindowAdapter {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
//위에 로그인화면을 구현한 Frame에 아래 WindowController 객체를 추가해준다.
WindowController wc=new WindowController();
ActionListener 인터페이스
//위에서 bt객체(로그인버튼)을 눌렀을 때 콘솔에 "로그인 눌림"이라고 출력한다.
public class ResisterEvent implements ActionListener {
Resister Re;
public ResisterEvent(Resister Re) {
this.Re = Re;
}
@Override //ActionListenr 의 actionPerformed() 메소드를 재정의해준다.
public void actionPerformed(ActionEvent e) {
if (e.getSource().equals(Re.bt)) {
System.out.println("로그인 눌림");
}
}
}
//위에 로그인 화면을 구현한 Frame의 로그인 버튼에 addActionListern() 메소드로 ActionListener인터페이스를 상속받은 ResisterEvent 객체를 넣어준다.
ResisterEvent re = new ResisterEvent(this);
bt.addActionListener(re);