2016-04-29 63 views
0

有没有办法做到既如何给JButton一个ImageIcon和背景颜色?

button.setBackground(Color.green.darker()); 

button.setIcon(new ImageIcon(buttonImg.getScaledInstance(15, 15, Image.SCALE_SMOOTH))); 

,使图像和背景颜色均可见?我错过了按钮图像上是否存在某种透明度设置?任何帮助将不胜感激。

编辑:

这是我正在尝试使用的图像。正如你所看到的,它具有透明度。 http://www.clipartlord.com/wp-content/uploads/2013/09/bomb3.png

我想要得到的是在透明度中填充背景颜色的按钮上显示的图像。现在,当我尝试这样做时,如果我添加了图像,背景颜色不可见。但是如果我不添加图像,背景颜色是可见的。我希望这有帮助。

+0

图像是否透明? – MadProgrammer

+0

并且按钮是不透明的? – RealSkeptic

+0

并将'setContentAreaFilled'设置为'false'? – MadProgrammer

回答

3

可能LookAndFeel不支持您想要实现的功能。这是来自meta主题,左侧和osx aqua主题的图片。

two different, right is osx aqua and left is metal

如果你想所有您的JButton背景的改变,你可以尝试使用支持改变UI一个的LookAndFeel。不幸的是,他们不让你改变按钮的默认背景,即使使用UIManager#set

如果你只想做一个按钮,你可以改变按钮的UI。

button.setUI(new BasicButtonUI()); 

这一个看起来并不太好,您可以将UI设置为一个从其他的LookAndFeel,

button.setUI(new MotifButtonUI()); 

(也没有看起来非常漂亮,但现在它按钮。 )

最后你还可以创建自己的ButtonUI,或者做一些自定义绘画。

+0

所以第一个BasicButtonUI几乎完美地工作。唯一的问题是,当它放在其他按钮的旁边时,没有边界或任何东西来区分它们。有没有办法做到这一点? – ipodfreak0313

+0

没关系,我明白了。我刚刚创建了一个带有边框的新边框,并在使用BasicButtonUI时将其应用于按钮。谢谢你的帮助! – ipodfreak0313