JButton은 AbstractButton의 하위 클래스로, Java Swing 애플리케이션에 플랫폼에 독립적인 버튼을 추가할 때 사용됩니다. 버튼이 눌리거나 클릭되면 ActionListener 인터페이스가 동작하며, 필요에 따라 MouseListener나 KeyListener 인터페이스도 함께 활용할 수 있습니다.
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픽셀의 여백을 지정하여 버튼이 기본 크기보다 훨씬 넓게 표시됩니다.
실행 결과

프로그램을 실행하면 창 상단(NORTH 영역)에 여백이 확장된 버튼이 나타나는 것을 확인할 수 있습니다.
참고 사항
일부 Look and Feel(예: Windows, Nimbus) 환경에서는 setMargin()이 의도한 대로 동작하지 않거나 무시될 수 있습니다. 이 경우 UIManager.put("Button.margin", new Insets(...))을 사용해 전역적으로 마진을 지정하거나, 버튼의 setBorderPainted(false) 및 커스텀 Border를 적용하는 방법도 고려할 수 있습니다.