Daily coding
Java Basic : day 14 - AWT & SWING 1 본문
AWT ( Abstract Window Toolkit )
Application (App) 을 만들기 위한 자바 API
* Front-end & Back-end & AWT
Web 환경(front-end) : html+CSS, java script, JQuery(Ajax) ...
- UI + Design(Browser)
- AWT, Swing(AWT 경량화 시킨 것) -> fx -> ...
- MVC 환경 조성 (AWT는 Spring과 비슷한 환경)
Java(back-end)
- file/Database(Oracle, MySQL...)과 데이터 주고 받음
AWT (Abstract Window Toolkit)
- GUI 응용 프로그래밍을 위한 자바 툴킷
- AWT(Abstract Windowing Toolkit)는 자바가 처음 나왔을 때 함께 배포된 패키지로서 많은 GUI 컴포너트를 가지고 있다.
- AWT의 컴포넌트들은 중량 컴포넌트(heavy weingt component)
: Frame, Window, Panel, Dialog, Button, Label, TextField, Checkbox, Choice....
- 이 컴포넌트들은 운영체제(OS)의 도움을 받아 화면에 출력되는데, 운영체제의 리소스를 많이 소모하여 운영체제에 부담을 많이 준다.
- AWT 컴포넌트는 운영체제에 의존적이므로 OS환경에 따라 다르게 구현될 수 있어요.
[출처] 자바 GUI 기초, AWT와 스윙(Swing)|작성자 1stwook
- Swing, C#,Android와 비슷(Android studio)
- wkqk
// WindowClass에서 만든 Frame을 실행
WindowTest1 f2 = new WindowTest1();
// JFrame
WindowTestJ j = new WindowTestJ();
}
}
* 간단한 예제 : AWT 기초 사용법 ( 배경사이즈 지정, 배경위치 지정, 배경색 지정, 윈도우리스너 상속받아 추가하기)
public class WindowTest extends Frame implements WindowListener{
public WindowTest() {
super("간단한 예제"); // 윈도우창의 타이틀을 지정한다.
frame.setBackground(Color.cyan); // 배경색 정하기
setSize(640, 480); // 윈도우 크기 (폭, 높이)을 지정한다.
setLocation(0, 0); // 윈도우 실행위치(0,0) 지정: 좌측 상단
setVisible(true); // 윈도우 시각화, true로 해주어야 창이 보인다.
addWindowListener(this);
//()안에는 추가한 윈도우리스너가 있는곳(현재는 지금 이 클래스)
// windowListener는 윈도우 창을 열거나 끄거나, 아이콘을 눌렀을 때 등
// 윈도우 창에 대한 액션이 있었을 때의 반응을 지정할 수 있다.
}
// WindowListener 인터페이스를 상속받아
// 리스너 만들기(이벤트 체크)
// 콘솔창으로 액션 체크해보기
@Override
public void windowOpened(WindowEvent e) {
System.out.println("windowOpened");
// 윈도우창 열림
}
@Override
public void windowClosing(WindowEvent e) {
System.out.println("windowClosing");
System.exit(0);
// ** 중요
// x버튼 눌렀을 때 창닫기
}
@Override
public void windowClosed(WindowEvent e) {
System.out.println("windowClosed");
// 창이 닫힌 후
}
@Override
public void windowIconified(WindowEvent e) {
System.out.println("windowIconified");
}
@Override
public void windowDeiconified(WindowEvent e) {
System.out.println("windowDeiconified");
}
@Override
public void windowActivated(WindowEvent e) {
System.out.println("windowActivated");
}
@Override
public void windowDeactivated(WindowEvent e) {
System.out.println("windowDeactivated");
}
}
* 간단한 예제 2 : Frame 클래스 상속 받지 않고 사용하기
package day14.Lecture01_AWT.test;
import java.awt.Color;
import java.awt.Frame;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
public class WindowTest1 implements WindowListener{
// 상속 안받고 사용하는 방법
// (Frame 클래스를 직접 생성)
public WindowTest1() {
Frame frame = new Frame();
frame.setTitle("간단한 예제2");
frame.setSize(300, 480);
frame.setLocation(100, 100);
frame.setBackground(Color.cyan); // 배경색 정하기
frame.setVisible(true);
frame.addWindowListener(this);
}
@Override
public void windowOpened(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
System.exit(0);
}
@Override
public void windowClosed(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowIconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowDeiconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowActivated(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowDeactivated(WindowEvent e) {
// TODO Auto-generated method stub
}
}
* 간단한 예제 : Swing 소속의 JFrame 상속받아 윈도우창 만들기
package day14.Lecture01_AWT.test;
import javax.swing.JFrame;
public class WindowTestJ extends JFrame{
//JFrame
public WindowTestJ() {
this.setSize(800, 600);
setLocation(100,0);
setVisible(true);
// JFrame 닫기 버튼 활성화 !
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
'Language > Java_basic' 카테고리의 다른 글
Java Basic : day 14 - AWT & SWING 3 : 레이아웃 Layout (0) | 2019.12.08 |
---|---|
Java Basic : day 14 - AWT & SWING 2 (0) | 2019.12.08 |
Java Basic : day 13 - Observer Pattern 옵저버 패턴 (0) | 2019.12.04 |
Java Basic : day 13 - Factory Pattern 팩토리패턴 (0) | 2019.12.04 |
Java Basic : day 13 - Calendar 캘린더 클래스 (0) | 2019.12.04 |