BorderLayout 배치 관리자
배치 방법
BorderLayout 배치관리자는 컨테이너 공간을 동(EAST), 서(WEST), 남(SOUTH), 북(NORTH), 중앙(CENTER)의 5개의 영역으로 분할하여 배치합니다.
다른 배치관리자와는 달리 BorderLayout 배치 관리자를 가진 컨테이너에 컴포넌트를 삽입하기 위해서는, 다음과 같이 add() 메소드에 컴포넌트의 위치를 명확히 정해주어야 합니다.
| void add(Component comp, int index) comp 컴포넌트를 index 위치에 삽입합니다. comp: 컨테이너에 삽입되는 컴포넌트 index: 컴포넌트의 위치 동: BoderLayout.EAST 서: BorderLayout.WEST 남: BoderLayout.SOUTH 북: BoderLayout.NORTH 중앙: BorderLayout.CENTER |
add() 메서드를 사용하는 예를 들어봅시다.
container.setLayout(new BorderLayout());
conatiner.add(new JButton("div"), BorderLayout.WEST);
container.add(new JButton("Calculate"), BorderLayout.CENTER);
컨테이커의 크기가 변하면 BorderLayout 배치 관리자 역시 새로운 크기에 맞도록 컴포넌트의 크기를 재조정합니다. BorderLayout 배치 관리자를 사용하는 컨테이너에는 일차적으로 5개의 컴포넌트 밖에 붙일 수 없습니다. BorderLayout 컨테이너에 5개 이상의 컴포넌트를 부착하고자 하면, 한 영역에 JPanel 등 다른 컨테이너를 부착하고 이곳에 컴포넌트들을 부착하면 됩니다.
BorderLayout의 생성자와 속성
BorderLayout 배치 관리자의 생성자는 다음과 같으며, 생성자를 이용하면 컴포넌트 사이의 간격으로 조절할 수 있습니다.
| BorderLayout() BorderLayout(int hGap, int vGap) hGap: 좌우 두 컴포넌트 사이의 수평 간격, 픽셀 단위, 디폴트는 0 vGap: 상하 두 컴포넌트 사이의 수직 간겨그 픽셀 단위, 디폴트는 0 |
BorderLayout의 생성자를 사용하는 예를 들어봅시다.
new BorderLayout(); // hGap=0, vGap=0인 BorderLayout 배치관리자 생성
new BorderLayout(30, 20); // hGap=30, vGap=20인 BorderLayout 배치관리자 생성
CENTER에 컴포넌트가 부착될 때 다른 컴포넌트가 없으면 컨테이너 전체 크기로 배치됩니더.
BorderLayout 배치관리자를 사용하는 예
import javax.swing.*;
import java.awt.*;
public class BorderLayoutEx extends JFrame {
public BorderLayoutEx() {
setTitle("BorderLayout Sample");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container c = getContentPane();
// 컨텐트팬에 BorderLayout 배치 관리자 설정
c.setLayout(new BorderLayout(30, 20));
c.add(new JButton("Calculate"), BorderLayout.CENTER);
c.add(new JButton("add"), BorderLayout.NORTH);
c.add(new JButton("sub"), BorderLayout.SOUTH);
c.add(new JButton("mul"), BorderLayout.EAST);
c.add(new JButton("div"), BorderLayout.WEST);
setSize(300, 200); // 프레임 크기 300x200 설정
setVisible(true); // 프레임 화면에 출력
}
public static void main(String[] args) {
new BorderLayoutEx();
}
}
실행결과

'프로그래밍 언어 > JAVA' 카테고리의 다른 글
| 배치관리자 없는 컨테이너 (2) | 2025.05.30 |
|---|---|
| GridLayout 배치관리자 (1) | 2025.05.27 |
| FlowLayout 배치관리자 (1) | 2025.05.21 |
| 컨테이너(Container)와 배치(Layout) (1) | 2025.05.20 |
| 스윙 GUI 프로그램 만들기 (1) | 2025.05.17 |