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

Java Swing에서 JButton 여백(Margin) 설정하는 방법 – setMargin()과 Insets 활용하기

JButtonAbstractButton의 하위 클래스로, Java Swing 애플리케이션에 플랫폼에 독립적인 버튼을 추가할 때 사용됩니다. 버튼이 눌리거나 클릭되면 ActionListener 인터페이스가 동작하며, 필요에 따라 MouseListenerKeyListener 인터페이스도 함께 활용할 수 있습니다.

JButton 여백 설정 방법

JButton의 여백(margin)은 JButton 클래스에서 제공하는 setMargin() 메서드를 통해 설정할 수 있습니다. 이 메서드는 Insets(int top, int left, int bottom, int right) 객체를 인자로 받으며, 각각 위쪽, 왼쪽, 아래쪽, 오른쪽 여백 크기를 픽셀 단위로 지정합니다.

  • top: 버튼 텍스트와 위쪽 경계 사이의 간격
  • left: 버튼 텍스트와 왼쪽 경계 사이의 간격
  • bottom: 버튼 텍스트와 아래쪽 경계 사이의 간격
  • right: 버튼 텍스트와 오른쪽 경계 사이의 간격

예제 코드

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class JButtonMarginTest extends JFrame {
    private JButton button;

    public JButtonMarginTest() {
        setTitle("JButtonMargin Test");
        setLayout(new BorderLayout());
        button = new JButton("JButton Margin");

        // 상하좌우 모두 50픽셀의 여백 설정
        button.setMargin(new Insets(50, 50, 50, 50));

        add(button, BorderLayout.NORTH);
        setSize(400, 400);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        setVisible(true);
    }

    public static void main(String[] args) {
        new JButtonMarginTest();
    }
}

코드 설명

위 예제에서는 JFrame을 생성하고 BorderLayout 레이아웃을 적용한 뒤, "JButton Margin"이라는 텍스트를 가진 버튼을 만들었습니다. 핵심 부분은 button.setMargin(new Insets(50, 50, 50, 50))으로, 네 방향 모두 50픽셀의 여백을 지정하여 버튼이 기본 크기보다 훨씬 넓게 표시됩니다.

실행 결과

Java Swing에서 JButton 여백(Margin) 설정하는 방법 – setMargin()과 Insets 활용하기

프로그램을 실행하면 창 상단(NORTH 영역)에 여백이 확장된 버튼이 나타나는 것을 확인할 수 있습니다.

참고 사항

일부 Look and Feel(예: Windows, Nimbus) 환경에서는 setMargin()이 의도한 대로 동작하지 않거나 무시될 수 있습니다. 이 경우 UIManager.put("Button.margin", new Insets(...))을 사용해 전역적으로 마진을 지정하거나, 버튼의 setBorderPainted(false) 및 커스텀 Border를 적용하는 방법도 고려할 수 있습니다.