Daily coding

Java Basic : day 14 - AWT & SWING 1 본문

Language/Java_basic

Java Basic : day 14 - AWT & SWING 1

sunnnkim 2019. 12. 8. 14:12

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);
	}
	
	
}