Get default border of JButton

13,151

You can retrieve the default border from UIManager:

UIManager.getBorder("Button.border");

For example:

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;

public class TestButton {
    private static void createAndShowGUI() {
        JFrame frame = new JFrame("TestButton");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JButton button = new JButton("Click");
        button.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));

        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                ((JButton)e.getSource()).setBorder(UIManager.getBorder("Button.border"));
            }
        });

        frame.add(button);
        frame.pack();
        frame.setLocationByPlatform(true);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }
}
Share:
13,151
Zulatin
Author by

Zulatin

Updated on June 04, 2022

Comments

  • Zulatin
    Zulatin about 2 years

    How can I get the default border of a JButton?

    An example is:

    Border border = new JButton().getBorder();
    

    But can I do it without creating a new button?