Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Áp dụng các loại Border cho JButton trong Java Swing

setBorder(Border)

JButton kế thừa JComponent, có phương thức setBorder(Border). Các Border phổ biến trong javax.swing.border.BorderFactory:

  • createLineBorder(Color) – viền đơn sắc
  • createBevelBorder(int type) – bevel raised/lowered
  • createBevelBorder(int, Color highlight, Color shadow) – bevel tùy màu
  • createBevelBorder(int, Color hiOuter, Color hiInner, Color loOuter, Color loInner) – bevel 4 màu
  • createEmptyBorder(top, left, bottom, right) – khoảng trống (padding)
  • createEtchedBorder(int type) – etched (sunken/raised)
  • createTitledBorder(String title) – viền có tiêu đề

Ví dụ: 7 button với border khác nhau

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

public class JButtonBordersDemo extends JFrame {
    public JButtonBordersDemo() {
        setTitle("JButton Borders Demo");
        JPanel panel = new JPanel(new GridLayout(7, 1));
        JButton[] buttons = new JButton[7];

        for (int i = 0; i < 7; i++) {
            buttons[i] = new JButton("Button " + (i+1));
            panel.add(buttons[i]);
        }

        buttons[0].setBorder(BorderFactory.createLineBorder(Color.BLUE));
        buttons[1].setBorder(BorderFactory.createBevelBorder(0)); // RAISED
        buttons[2].setBorder(BorderFactory.createBevelBorder(1, Color.RED, Color.BLUE)); // LOWERED
        buttons[3].setBorder(BorderFactory.createBevelBorder(1, Color.GREEN, Color.ORANGE, Color.RED, Color.BLUE));
        buttons[4].setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); // padding
        buttons[5].setBorder(BorderFactory.createEtchedBorder(0)); // ETCHED
        buttons[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) {
        SwingUtilities.invokeLater(JButtonBordersDemo::new);
    }
}

Kết quả

Áp dụng các loại Border cho JButton trong Java Swing

Mẹo: Kết hợp nhiều border: BorderFactory.createCompoundBorder(outer, inner).