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
반응형
'Java > 자바 Swing' 카테고리의 다른 글
[Java] 59. 사용자 정의 예외 클래스 (0) | 2024.04.29 |
---|---|
[Java] 56. Swing 응용 예제: 집 그리기 (0) | 2024.04.26 |
[Java] 55. Swing: 패널과 컨테이너 (0) | 2024.04.26 |
[Java] 50. 스윙 컴포넌트로 버튼 만들기 (0) | 2024.04.25 |
[Java] 49. 자바 GUI와 Swing 컴포넌트 (0) | 2024.04.25 |