【问题标题】:Get default border of JButton获取JButton的默认边框
【发布时间】:2012-10-24 18:06:07
【问题描述】:

如何获得JButton 的默认边框?

一个例子是:

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

但是我可以在不创建新按钮的情况下这样做吗?

【问题讨论】:

  • 我认为没有人真正理解你的问题。
  • 我正在制作一个游戏,其中有代表我的棋子的 JButton。当我单击一个时,我希望它将边框更改为 LineBorder,如果我再次单击它,我想要默认边框。我使用我的 getBorder() 修复了它,但更愿意只输入默认的边框
  • 听起来你需要使用 JToggleButton 而不是 JButton。
  • 我已经澄清了这个问题,现在应该可以回答了。

标签: java swing border jbutton


【解决方案1】:

你可以从UIManager获取默认边框:

UIManager.getBorder("Button.border");

例如:

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();
            }
        });
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-14
    • 1970-01-01
    • 2021-08-10
    • 2017-11-09
    • 1970-01-01
    相关资源
    最近更新 更多