为什么setBackground到JButton不起作用?

Rom*_*man 8 java swing look-and-feel jbutton setbackground

我有以下简单的代码:

btn = new JButton();
btn.setBackground(backgroundColor)
Run Code Online (Sandbox Code Playgroud)

我用的时候工作过:

UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel");
Run Code Online (Sandbox Code Playgroud)

但是在我评论了上述内容后,它停止了工作.有没有人知道为什么会发生这种情况以及如何在不使用明确外观的情况下为按钮设置背景颜色?

添加

在我看来,我需要使用getBackground.但是我不知道怎么做.

小智 12

为了填充颜色,必须将元素的不透明度设置为true

     btn = new JButton();
     btn.setOpaque(true);
     btn.setBackground(backgroundColor);
Run Code Online (Sandbox Code Playgroud)


小智 7

添加 btn.setBorderPainted(false)


pro*_*tif 6

从setBackground()javadoc:

尊重这个属性取决于外观和感觉,有些人可能会选择忽略它.

也许你的LAF只是忽略了它.