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

Java Swing에서 JButton에 다양한 테두리(Border)를 적용하는 방법

JButtonAbstractButton 클래스의 하위 클래스로, Java Swing 애플리케이션에서 플랫폼에 독립적인 버튼을 추가할 때 사용됩니다.

JButton은 사용자가 버튼을 클릭하면 ActionListener 인터페이스를 통해 이벤트를 발생시키며, 마우스 조작 시에는 MouseListener, 키보드 입력 시에는 KeyListener를 통해서도 이벤트를 처리할 수 있습니다.

JButton에 테두리 설정하기

JButton에는 LineBorder, BevelBorder, EtchedBorder, EmptyBorder, TitledBorder 등 다양한 종류의 테두리를 적용할 수 있으며, 이는 JComponent 클래스의 setBorder() 메서드를 사용하여 구현합니다.

문법(Syntax)

public void setBorder(Border border)

예제 코드(Example)

아래 예제에서는 BorderFactory 클래스의 팩토리 메서드들을 활용해 7개의 버튼에 서로 다른 스타일의 테두리를 적용했습니다.

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

public class JButtonBordersTest extends JFrame {
    private JButton button[];
    private JPanel panel;

    public JButtonBordersTest() {
        setTitle("JButton Borders");
        panel = new JPanel();
        panel.setLayout(new GridLayout(7, 1));
        button = new JButton[7];

        for(int count = 0; count < button.length; count++) {
            button[count] = new JButton("Button "+(count+1));
            panel.add(button[count]);
        }

        // 파란색 실선 테두리
        button[0].setBorder(BorderFactory.createLineBorder(Color.blue));

        // 돌출된 베벨 테두리
        button[1].setBorder(BorderFactory.createBevelBorder(0));

        // 빨강/파랑 색상이 지정된 움푹 들어간 베벨 테두리
        button[2].setBorder(BorderFactory.createBevelBorder(1, Color.red, Color.blue));

        // 네 가지 색상으로 구성된 베벨 테두리
        button[3].setBorder(BorderFactory.createBevelBorder(1, Color.green, Color.orange, Color.red, Color.blue));

        // 여백(빈) 테두리
        button[4].setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));

        // 홈이 파인 에칭 테두리
        button[5].setBorder(BorderFactory.createEtchedBorder(0));

        // 제목이 포함된 테두리
        button[6].setBorder(BorderFactory.createTitledBorder("Titled Border"));

        add(panel, BorderLayout.CENTER);
        setSize(400, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        setVisible(true);
    }

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

실행 결과(Output)

위 코드를 실행하면 각 버튼마다 서로 다른 테두리 스타일이 적용된 것을 확인할 수 있습니다.

Java Swing에서 JButton에 다양한 테두리(Border)를 적용하는 방법

정리

Swing에서는 BorderFactory 클래스가 제공하는 다양한 팩토리 메서드를 통해 별도의 커스텀 클래스 작성 없이도 손쉽게 여러 스타일의 테두리를 만들 수 있습니다. 필요에 따라 색상, 두께, 제목 등을 지정하여 UI를 더욱 직관적으로 꾸밀 수 있습니다.