Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java setBounds() 메소드란? 용도와 사용법 완벽 정리

Java Swing에서 레이아웃 매니저(Layout Manager)는 컨테이너에 추가된 컴포넌트의 위치와 크기를 자동으로 배치해 주는 역할을 합니다. 반면 레이아웃 매니저를 사용하지 않으면 각 컴포넌트의 위치와 크기를 개발자가 직접 지정해야 하는데, 이때 활용되는 것이 바로 setBounds() 메소드입니다. 컴포넌트를 수동으로 배치하려면 프레임의 레이아웃 매니저를 null로 설정하면 됩니다.

setBounds() 메소드의 구조

setBounds() 메소드는 총 네 개의 정수형 인수를 받습니다. 첫 번째와 두 번째 인수는 컴포넌트 왼쪽 상단 모서리의 x, y 좌표를 나타내고, 세 번째 인수는 컴포넌트의 너비(width), 네 번째 인수는 높이(height)를 의미합니다.

구문(Syntax)

setBounds(int x좌표, int y좌표, int 너비, int 높이)

예제 코드

다음은 JFrame 안에 JButton을 생성한 뒤 setBounds()로 위치와 크기를 지정하는 간단한 예제입니다.

import javax.swing.*;
import java.awt.*;
public class SetBoundsTest {
    public static void main(String arg[]) {
        JFrame frame = new JFrame("SetBounds Method Test");
        frame.setSize(375, 250);
        // 레이아웃을 null로 설정
        frame.setLayout(null);
        // 버튼 생성
        JButton button = new JButton("Hello Java");
        // 버튼의 위치와 크기 설정
        button.setBounds(80, 30, 120, 40);
        frame.add(button);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}

실행 결과

위 코드를 실행하면 프레임 내 지정된 좌표(80, 30)에 너비 120, 높이 40 크기의 버튼이 배치된 것을 확인할 수 있습니다.

Java setBounds() 메소드란? 용도와 사용법 완벽 정리

정리 및 참고 사항

setBounds()를 활용한 절대 배치(absolute positioning)는 원하는 위치에 컴포넌트를 정확하게 놓을 수 있다는 장점이 있습니다. 하지만 창 크기가 변경되거나 해상도가 다른 환경에서는 화면 배치가 깨질 수 있다는 단점이 있습니다. 따라서 간단한 테스트나 학습 목적 외에는 BorderLayout, FlowLayout, GridBagLayout과 같은 레이아웃 매니저를 사용하는 것이 일반적으로 권장됩니다.