본문 바로가기
Java/자바 Swing

[Java] 50. 스윙 컴포넌트로 버튼 만들기

글: Song hyun 2024. 4. 25.
728x90
반응형

[Java] 50. 스윙 컴포넌트로 버튼 만들기

1. 모니터에 창 띄우기

2. 화면의 사방에 버튼 띄우기


1. 모니터에 창 띄우기

(1) 배치 관리자(Layout Manager): 컨테이너 안의 각 컴포넌트의 위치와 크기를 정해주는 작업.

 

-setTitle(String): 타이틀 바의 제목을 출력한다.

-setSize(int,int): 프레임의 크기를 결정한다.(가로,세로)

-setVisible: 프레임을 화면에 나타나게 한다.(=디폴트는 숨겨진 상태이다.)

-setDefaultCloseOperation: 윈도우창 종료시 프로세스 창도 함께 닫게 한다/

 

-awt (Abstract Window Toolkit) : 윈도우 GUI 프로그래밍을 돕는 도구.

-FlowLayout: 해당 문화권(오->왼/왼->오)의 방식으로 배치한다.

-JButton 컴포넌트: 이름이 있는 버튼을 삽입시키는 컴포넌트.

코드를 동작했을 때의 화면

package ch01;

import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JFrame;

// Swing-> 배치 관리자: FlowLayout
// 컴포넌트들을 (버튼, 라벨) 수평, 수직으로 배치해주는 클래스이다.
public class FlowLayoutEx extends JFrame {

	private JButton button1; // 참조 타입
	private JButton button2;
	private JButton button3; // 참조 타입
	private JButton button4;
	private JButton button5; // 참조 타입
	private JButton button6;

	// 생성자
	public FlowLayoutEx() {
		super.setTitle("FlowLayout 연습");
		super.setSize(500, 500);
		super.setVisible(true);
		super.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		// 생성자에서 메서드 호출이 가능하다.
		initData();
		setInitLayout();
	}

	// 멤버 변수를 초기화하는 기능 (값 넣기)
	public void initData() {
		button1 = new JButton("버튼 1");
		button2 = new JButton("버튼 2");
		button3 = new JButton("버튼 3");
		button4 = new JButton("버튼 4");
		button5 = new JButton("버튼 5");
		button6 = new JButton("버튼 6");
	}

	// 컴포넌트들을 배치하는 기능
	public void setInitLayout() {
		// 배치 관리자 --> BorderLayout 이라는 배치관리자가 기본으로 활용된다.
		FlowLayout flowLayout = new FlowLayout(FlowLayout.LEADING,50,50);
		super.setLayout(flowLayout);
		// 컴포넌트들을 붙이다.
		super.add(button1);
		super.add(button2);
		super.add(button3);
		super.add(button4);
		super.add(button5);
		super.add(button6);
	}

	// 코드 테스트
	public static void main(String[] args) {
		// FlowLayoutEX f1 = new FlowLayoutEx(); <-- 부를 수 있는 이름이 있는 클래스
		new FlowLayoutEx(); // <--익명 클래스(변수명 x)
		// 다시 접근해서 사용할 일이 없으면 new라고 선언만 해도 Okay

	}
}

2. 화면의 사방에 버튼 띄우기

-BorderLayout.방향: JFrame의 기본 레이아웃으로, 입력한 방향에 해당 컴포넌트를 출력시킨다. (상/하/좌/우/중앙)

 

코드를 동작했을 때의 화면

package ch01;
import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JFrame;

public class BorderLayoutEx1 extends JFrame {
	
	public BorderLayoutEx1() {
		initData();
		setInitLayout();
	}
	
	public void initData() {
		setTitle("borderLayout 연습");
		setSize(600,600);
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
	public void setInitLayout() {
		// 배치 관리자 선정(컨테이너)
		// borderLayout은 컴포넌트들을 동서남북가운데로 정렬/배치시켜주는 레이아웃이다.
		setLayout(new BorderLayout());
		add(new JButton("동"), BorderLayout.EAST); // EAST=상수
		add(new JButton("서"), BorderLayout.WEST); 
		add(new JButton("남"), BorderLayout.SOUTH); 
		add(new JButton("북"), BorderLayout.NORTH);
		add(new JButton("중앙"), BorderLayout.CENTER); 
	}
	
	public static void main(String[] args) {
		new BorderLayoutEx1();
	} // end of main
} // end of class

 

728x90
반응형