본문 바로가기

JAVA

swing (Layout)

▷ BorderLayout

      대상 컨테이너의 동, 서, 남, 북, 중앙 5개의 영역으로 분할하여 컴포넌트를 배치
    JFrame 객체(프레임)의 기본 레이아웃
    별도의 설정이 없을 경우 기본적으로 BorderLayout이 적용되어 있음
    배치할 영역을 지정하는 경우 add() 메서드의 두 번째 파라미터로 BorderLayout.XXX 상수로 위치 지정 가능
    만약, 영역 지정을 생략할 경우 기본 영역이 CENTER 영역으로 지정됨
    한 영역 당 1개의 컨테이너 또는 컴포넌트 배치 가능
    만약, 한 영역에 두 개 이상의 컴포넌트 등을 배치할 경우 마지막에 배치된 대상만 표시됨
    BorderLayout이 적용된 대상의 크기를 변경하더라도 내부에 배치된 컴포넌트의 크기만 변경되고,

            배치된 형태(위치)는 변경되지 않음

 

ex_layout.Clone_Ex1.java

package ex_layout;

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

public class Clone_Ex1 {

	public Clone_Ex1() {
		showFrame();
		
	}
	
	public void showFrame() {
		JFrame f = new JFrame("Clone_Ex1");
		f.setBounds(600,300,600,400);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		JButton btnCenter = new JButton("CENTER");
		f.add(btnCenter, BorderLayout.CENTER);
		
		JButton btnNorth = new JButton("NORTH");
		f.add(btnNorth, BorderLayout.NORTH);
		
		JButton btnEast = new JButton("EAST");
		f.add(btnEast, BorderLayout.EAST);
		
		JButton btnWest = new JButton("WEST");
		f.add(btnWest, BorderLayout.WEST);
		
		JButton btnSouth = new JButton("SOUTH");
		f.add(btnSouth, BorderLayout.SOUTH);
		
		ActionListener listener = new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				JButton btn = (JButton) e.getSource();
				
				if(btnCenter == e.getSource()) {
					System.out.println("CENTER 버튼 클릭됨!");
				} else if(btnEast == e.getSource()) {
					System.out.println("EAST 버튼 클릭됨!");
				} else if(btnNorth == e.getSource()) {
					System.out.println("NORTH 버튼 클릭됨!");
				} else if(btnWest == e.getSource()) {
					System.out.println("WEST 버튼 클릭됨!");
				} else {
					System.out.println("SOUTH 버튼 클릭됨!");
				}
			}
			
		};
		btnCenter.addActionListener(listener);
		btnEast.addActionListener(listener);
		btnNorth.addActionListener(listener);
		btnWest.addActionListener(listener);
		btnSouth.addActionListener(listener);
		
		f.setVisible(true);
	}
	
	public static void main(String[] args) {
		new Clone_Ex1();
	}
	
	
}

수업시간에 한 내용을 Clone클래스로 만들어서 똑같이 따라해봄

▷ ActionListener는 버튼의 객체를 가져올 수 있고 그 버튼의 텍스트 정보만 필요하다면

    getActionCommand() 또는 getText() 활용하면 된다.

'JAVA' 카테고리의 다른 글

swing (Layout 변경2)  (0) 2022.02.26
swing (Layout 변경)  (0) 2022.02.26
Swing(event_handling)  (0) 2022.02.23
Swing  (0) 2022.02.23
인터페이스 활용 | 22/01/05  (0) 2022.01.11