【发布时间】:2013-01-22 11:51:23
【问题描述】:
我已经搜索了几天的答案并阅读了很多关于 LookAndFeels 和不透明问题的信息,但找不到解决方案。我正在使用 NimbusLookAndFeel 开发一个带有 Swing 的 Java 应用程序。我对整体的外观很满意,但还是想修改一个视图的东西。现在我被卡住了,因为不知何故我无法设置禁用的 JCombobox 的背景颜色 (combobox.setEnabled(false);)
我已经用 UIManager.put(..) + 很多其他的东西尝试了无数不同的属性。
如果我使用另一个 L&F 类似这样的方法:
combobox.setRenderer(new DefaultListCellRenderer() {
@Override
public void paint(Graphics g) {
setBackground(Color.WHITE);
setForeground(Color.BLACK);
super.paint(g);
}
});
对如何使用 Nimbus 执行此操作有任何建议吗?
【问题讨论】:
-
不相关:a) 不要覆盖paint,而是覆盖paintComponent b) 只覆盖paintComponent 以进行自定义绘画c) 永远不会在paint方法中更改组件状态.也就是说:Nimbus 很少尊重其设置器配置的颜色属性。相反,提供一个自定义(每个组件)皮肤属性,如 f.i. 所述。在 Swing 圣经的Nimbus related chapter 和其中引用的文章中。
标签: swing look-and-feel nimbus