【问题标题】:How can I make a button exactly the same size of its text?如何使按钮的文本大小完全相同?
【发布时间】:2011-02-12 08:20:57
【问题描述】:

是否可以使JButton 与其文本的大小完全相同?因为默认情况下,JButton 的文本周围会有少量的填充(水平和垂直)。我想删除那个填充。

【问题讨论】:

    标签: java swing jbutton


    【解决方案1】:

    使用setMargin 清除按钮中的边距。

    移除边框具有移除边框的副作用。如果您只想清除边距,请使用setMargin 方法将边距全部设置为零。

    button.setMargin(new Insets(0,0,0,0));
    

    【讨论】:

    • 谢谢,这个提示很有用!
    • 在我的系统上,我在使用这种方法之前测量了文本左右 16 个像素的水平填充,之后测量了 15 个像素。除了按钮之外,似乎还有其他添加填充的东西。也许按钮为自己创建的标签?我认为解决方案取决于 L&F 和系统。我在使用默认 L&F 和 JDK 11 的 macOS Big Sur 上。
    【解决方案2】:

    JButton默认有边框,可以去掉:

    button.setBorder(null);
    

    如果要保留边框,请减小边距(见Eugenes answer

    【讨论】:

    • 谢谢,很抱歉提出这么简单的问题。
    • 谢谢你,想找到该死的填充设置在哪里。
    • -1 这个答案删除了边框。这不是OP所要求的。请参阅其他答案以清除边距而不删除边框。
    • 有趣的是,设置btn.setBorderPainted(false) 并没有做同样的事情。你会认为它会的。
    猜你喜欢
    • 2018-05-31
    • 2022-01-24
    • 2015-01-30
    • 2015-11-15
    • 2016-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多