获取Swing组件的默认背景色

39
如何获得Swing组件的默认背景颜色? 我指的是JPanel的默认背景颜色?

1
也许您正在寻找类似这样的内容:http://stackoverflow.com/questions/2739704/getting-panel-color? - Randall Hunt
1
你的提问让我怀疑 GUI 的设计存在问题。默认颜色中有什么问题不能通过 super.paintComponent(g) 更好地解决吗?顺便说一句,Swing 的 JPanel 通常(取决于 PLAF)具有不同的背景色,而与 JTableJTextField 不同。不要认为你已经确定了“背景色”。 - Andrew Thompson
1个回答

77

要获取面板在创建时使用的默认颜色,请使用:

Color color = UIManager.getColor ( "Panel.background" );

要获取当前面板的背景,请使用:

Color color = panel.getBackground ();

查看完整的UIManager颜色属性列表,请参见http://alvinalexander.com/java/java-uimanager-color-keys-list


它返回面板创建时将使用的“默认颜色”吗?还是返回最后一个 UIManager.put("Panel.background",color); 之后的值? - c0der
1
如果你想深入了解的话,JPanel 实际上没有默认值,它是从当前面板 UI 实例在 UI 安装时设置的。通常情况下,它是从 UI 默认表中 Panel.background 键下的值获取的。当然,你可以重新定义该值 - 在这种情况下,它将成为默认的面板背景颜色,并且将用于在你重新定义后创建的所有新面板。 - Mikle Garin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接