获取 Swing 组件的默认背景颜色

Posted

技术标签:

【中文标题】获取 Swing 组件的默认背景颜色【英文标题】:Get default background color of swing component 【发布时间】:2012-04-16 23:39:08 【问题描述】:

如何获取 swing 组件的默认背景颜色?我的意思是JPanel的默认背景颜色?

【问题讨论】:

也许你正在寻找这样的东西:***.com/questions/2739704/getting-panel-color ? 你问的事实让我怀疑 GUI 的设计有问题。您需要的无法按super.paintComponent(g) 排序(更好)的默认颜色是什么?顺便说一句 - Swing JPanel 通常(取决于 PLAF)具有与 JTableJTextField 不同的 BG 颜色。小心认为你有“BG”颜色。 【参考方案1】:

要获得面板在创建时将使用的 DEFAULT 颜色,请使用:

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

要获得CURRENT面板背景使用:

Color color = panel.getBackground ();

有关UIManager 颜色属性的完整列表,请参阅http://alvinalexander.com/java/java-uimanager-color-keys-list。

【讨论】:

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

以上是关于获取 Swing 组件的默认背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

Java Swing:在鼠标悬停时更改背景颜色

如何更改 TChromium 组件的默认背景颜色?

如何利用NetBeans Swing颜色选择器控制按钮背景

Swing JList SetCellRenderer 背景颜色不起作用

尝试使用 GetObject() 获取默认背景颜色;

react-native 如何在子组件中获取父组件背景颜色