Nimbus忽略了JButton属性,覆盖了边界属性

时间:2015-06-07 10:40:01

标签: java swing jtable jbutton nimbus

使用Nimbus外观时,我无法创建具有特定属性的Button。

首先,我使用这个类在JTable的某些列中实现Button。 https://tips4java.wordpress.com/2009/07/12/table-button-column/

JButton in columns最后两列是空的JButtons

如果我尝试在构造函数中设置此属性,则根本不会进行任何更改:

    renderButton.setBorder(BorderFactory.createEmptyBorder());
    renderButton.setOpaque(false);
    renderButton.setBorderPainted(false);

所以我保留了我的研究,我发现我应该这样做,因为Nimbus忽略了那些属性。我的下一次尝试:

    UIDefaults def = new UIDefaults();
    /*Properties Here*/
    renderButton.putClientProperty("Nimbus.Overrides", def);
    renderButton.putClientProperty("Nimbus.Overrides.InheritDefaults", true);

所以我尝试了一些,但我真的不知道我应该使用什么名字:

    def.put("Button.border", BorderFactory.createEmptyBorder());
    def.put("Button.borderPainted", false);
    def.put("Button.background", Color.BLUE);

背景一个是唯一一个适合我的,但我不希望这样,我希望那些删除边框。

最后一件事,通过这样做(设置最后为假)并且只有这个:

    UIDefaults def = new UIDefaults();
    renderButton.putClientProperty("Nimbus.Overrides", def);
    renderButton.putClientProperty("Nimbus.Overrides.InheritDefaults", false);

我没有边界,但我确实输了最后的背景(JTable剥离了一个):

enter image description here

如你所见,我计划事后使用图像。我更喜欢这个,但更愿意保留背景。

顺便说一句,也许我不应该这样做,问题出在其他地方。 谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

图像摆脱背景的答案。尝试编辑图片文件并删除所有不属于图片所属对象的白色。然后背景应该与图片一起显示。