【发布时间】:2018-03-07 05:39:45
【问题描述】:
我有一个带有 ImageIcon 和一些文本的 JButton。 我想要有没有边框的透明背景,但也想要有一些填充。
这是我尝试过的:
Jbutton button = new JButton();
//Add image to the button
ImageIcon img= new ImageIcon(imgUrl);
button.setIcon(img);
//make button transparent
button.setBackground(new Color(255,255,255,0));
//Remove border
button.setBorderPainted(false);
button.setContentAreaFilled(false);
button.setFocusPainted(false);
//add padding
button.setBorder(BorderFactory.createEmptyBorder(5,10,5,50));
我仍然看到一个接一个的灰色边框。 当我做 button.setBorder(null) 时,灰色边框线消失了,但是我无法添加填充。
如果有人可以指导我做错了什么。我对摇摆很陌生,尝试过不同的答案,但都没有奏效。
谢谢。
【问题讨论】:
-
button.setBackground(new Color(255,255,255,0));不是让组件透明的方式,相反,您需要设置setOpaque并将其传递为 false -
我还想看看
JButton#setMargin添加填充 -
@MadProgrammer 我尝试了 button.setMargin(new Insets(10,10,10,10)) 但无法将边框设置为空。还有什么我可以尝试的吗?
-
对我来说似乎工作正常
-
使用
MatteBorder而不是EmptyBorder。例如button.setBorder(new MatteBorder(10, 10, 10, 10, color)),其中的颜色是所需的背景。