Java JButton属性被Nimbus忽略,覆盖边框属性

Java JButton属性被Nimbus忽略,覆盖边框属性,java,swing,jtable,jbutton,nimbus,Java,Swing,Jtable,Jbutton,Nimbus,在使用Nimbus外观时,我很难创建具有特定属性的按钮 首先,我使用这个类在JTable的某些列中实现一个按钮 最后两列是空的JButtons 如果我尝试在构造函数中设置此属性,则不会得到任何更改: renderButton.setBorder(BorderFactory.createEmptyBorder()); renderButton.setOpaque(false); renderButton.setBorderPainted(false); 所以我继续我的研究

在使用Nimbus外观时,我很难创建具有特定属性的按钮

首先,我使用这个类在JTable的某些列中实现一个按钮

最后两列是空的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);
背景是唯一适合我的,但我不想这样,我想让背景去掉边框

最后一件事,通过在false中执行此设置last,并且只执行以下操作:

    UIDefaults def = new UIDefaults();
    renderButton.putClientProperty("Nimbus.Overrides", def);
    renderButton.putClientProperty("Nimbus.Overrides.InheritDefaults", false);
我没有边界,但我输给了最后一个边界:

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

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

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

这个主题可能会有帮助:我已经检查过了,它确实有帮助。事实上,这里有property Button.background,这是唯一有效的,我想知道哪些是与边框相关的属性的名称。编辑:刚找到属性,但不是我所期望的。我只会使用渲染器进行条带化,在相关的底部,右侧应该是SSCCE/MCVE形式的几次尝试,努力是不值得的…图像的背景已经是透明的,所以问题不存在。