gpt4 book ai didi

java - 禁用的 JComboBox 中更好的可读性/对比度

转载 作者:搜寻专家 更新时间:2023-10-30 21:42:00 27 4
gpt4 key购买 nike

我有一个 JComboBox 需要在某些时候被禁用,但我觉得 disabled 状态使得它很难阅读,因为它的对比度很低。

如果只有下拉箭头按钮显示为禁用状态,同时保持框渲染器保持启用状态,那就太好了。

实际:actual combo所需:desired result

有没有简单的方法来实现这个或类似的东西?

谢谢!

最佳答案

我最终浏览了 BasicComboBoxUI,在那里我发现了这个:

        if ( comboBox.isEnabled() ) {
c.setForeground(comboBox.getForeground());
c.setBackground(comboBox.getBackground());
}
else {
c.setForeground(DefaultLookup.getColor(
comboBox, this, "ComboBox.disabledForeground", null));
c.setBackground(DefaultLookup.getColor(
comboBox, this, "ComboBox.disabledBackground", null));
}

因此,我将 JLabel 用作渲染器组件,并重写了 setForeground 方法以不执行任何操作。因此,颜色永远不会改变并保持默认的黑色值。

问题在于这个技巧是特定于实现的。给定的 Look&Feel 或 UI Manager 可能会做其他事情,比如用半透明层覆盖以显示禁用的项目,而不是更改组件的颜色:-(

如果安装的 L&F 或 UI 管理器不调用 setForeground 方法,也许测试至少可以发出警告。

关于java - 禁用的 JComboBox 中更好的可读性/对比度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4827635/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com