如何使按钮的大小与其文本完全相同?

10

如何让一个JButton控件的大小与其文本内容完全一致?因为默认情况下,JButton控件会在其文本周围留有一定的内边距(水平和垂直方向都有)。我希望去除这些内边距。

2个回答

13

JButton默认有边框,你可以将其移除:

button.setBorder(null);
如果你想保留边框,减小外边距(参见Eugene的回答)。

谢谢,很抱歉问了这么简单的问题。 - PB_MLT
谢谢!我已经快被寻找设置填充的地方逼疯了。 - Gubatron
2
-1 这个答案移除了边框,这不是 OP 所要求的。请参考其他答案,在不移除边框的情况下清除边距。 - Erick Robertson
有趣的是,设置 btn.setBorderPainted(false) 并不会产生相同的效果。你可能会认为它会这样做。 - Hunter S

12

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

移除边框会带来副作用,可能会使得边框消失。如果你只想清除边距,请使用setMargin方法将所有的边距都设为零。

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接