본문 바로가기
Java/자바 Swing

[Java] 51. 스윙 컴포넌트, 반복문 활용: 동서남북에 버튼 만들기

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

[Java] 51. 스윙 컴포넌트, 반복문 활용: 동서남북에 버튼 만들기

스윙 컴포넌트를 사용해 동/서/남/북/중앙에 각각의 버튼을 만들어보자.(총 5개)


(3) 반복문 만들기

반복문을 사용하지 않을 때의 코드는

add(button1, BorderLayout_EAST);

add(button2, BorderLayout_WEST);

add(button3, BorderLayout_SOUTH);

add(button4, BorderLayout_NORTH);

add(button5, BorderLayout_CENTER); 이다.

각각의 버튼을 다섯가지 위치에 생성하는 코드이다.

 

 우리는 여기서 add(JButton 타입 변수, BorderLayout_방향을 의미하는 String 타입 변수);

라는 패턴이 반복되고 있다는 것을 알 수 있다.

 이를 통해 반복문을 만들어보자.

 

(1) JButton 타입, String 타입 변수들을 효율적으로 관리하기 위해, 배열을 선언하고 초기화한다.

JButton[] buttons;
String[] directions = { BorderLayout.EAST, BorderLayout.WEST, BorderLayout.SOUTH, BorderLayout.NORTH, BorderLayout.CENTER };

 

 

(2) String 타입 배열의 경우, 배열 내 변수의 초기화로 배열의 크기가 이미 정해졌다.

JButton 타입 배열을 초기화하자. 

buttons = new JButton[5];

 

 

(3) 위에서 선언, 초기화한 배열을 for문과 함께 사용해, 반복문으로 손쉽게 코드를 작성해보자.

for (int i = 0; i<button.length; i++){
    buttons[i] = new JButton("Button" + i);
    add(buttons[i], directions[i]); }
}

 

package ch01;

import java.awt.BorderLayout;

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

public class BorderLayoutEx2 extends JFrame {

	JButton[] buttons;
	String[] directions = { BorderLayout.EAST, BorderLayout.WEST, BorderLayout.SOUTH, BorderLayout.NORTH,
			BorderLayout.CENTER };

	public BorderLayoutEx2() {
		initData();
		setInitLayout();
	}

	public void initData() {
		setTitle("borderLayout 연습");
		setSize(600, 600);
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		// 프로그램 종료

		buttons = new JButton[5];
	}

	public void setInitLayout() {
		// 배치 관리자 선정(컨테이너)
		// borderLayout은 컴포넌트들을 동서남북가운데로 정렬/배치시켜주는 레이아웃이다.
		setLayout(new BorderLayout());
		for (int i = 0; i < buttons.length; i++) {
			buttons[i] = new JButton("Button" + i);
			add(buttons[i], directions[i]);
		}
	}

	public static void main(String[] args) {
		new BorderLayoutEx2();
	} // end of main
} // end of class
728x90
반응형