Daily coding

Java Basic : day 14 - AWT & SWING 3 : 레이아웃 Layout 본문

Language/Java_basic

Java Basic : day 14 - AWT & SWING 3 : 레이아웃 Layout

sunnnkim 2019. 12. 8. 14:30

 AWT & SWING 3

 

1. Layout

 

default layout : 기본 레이아웃, 불편함, 전체가 1개 레이아웃이라 계속 덮어씌운다.

FlowLayout() :  바닥에 하나의 레이아웃에 추가하는 대로 옆으로 추가된다. 예쁘지 않음


GridLayout(1, 5) : 칸을 나누는 그리드 레이아웃 ,

                            해상도에 맞게 화면을 나누어 주기 때문에 안드로이드에 많이 사용된다.

 

BorderLayout() : 화면을 동-서-남-북-중앙으로 나누어 차례대로 요소들을 배치한다.


setLayout(null) : 레이아웃 사용을 안할 시에는 null, 안에 요소들이 추가되어도 위치값이 없으면 안 나타남

 

 

 

 

package day14.Lecture01_AWT.test3;

import java.awt.Button;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

public class WindowTest extends Frame implements WindowListener {

	// 레이아웃
	public WindowTest() {
    
    
		// default layout : 기본 레이아웃, 불편함, 전체가 1개 레이아웃이라 계속 덮어씌운다.
		super("layout");
		
		setLayout(new FlowLayout());
		// 바닥에 하나의 레이아웃에 추가하는 대로 옆으로 추가된다. 예쁘지 않음
		setLayout(new GridLayout(1, 5));
		// 칸을 나누는 그리드 레이아웃 : 해상도에 맞게 화면을 나누어 주기 때문에 안드로이드에 많이 사용된다.
		setLayout(null);
		// 레이아웃 사용을 안할 시에는 null, 안에 요소들이 추가되어도 위치가 없으면 안 나타남
		
        
		
		// label 2개 추가
		Label label1 = new Label("레이블1입니다.");
		label1.setBackground(new Color(247,210,0));
        
		label1.setSize(150, 30);	// 레이아웃 null이면 다 정해줘야함
		label1.setLocation(100, 100); // 레이아웃 null이면 다 정해줘야함
		
		
		Label label2 = new Label("레이블2입니다.");
		label2.setBackground(new Color(255, 168, 168));
		label2.setBounds(100, 200, 200, 100); // 레이아웃 null이면 다 정해줘야함
		
		
		add(label1);
		add(label2);
		
		
        
		// Button 2개 추가
		Button button = new Button();
		button.setLabel("버튼");
		button.setBounds(100, 350, 200, 100); // 레이아웃 null이면 다 정해줘야함
        
		add(button);	
        // 위치 설정안하면 옆으로 바로 붙어버림
        
        
        // 윈도우창의 기본 크기와 위치 설정
		setBounds(0, 0, 640, 480);
		setVisible(true);
		
		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

	}

}