gpt4 book ai didi

java - 在之前更改背景颜色后禁用时,JTextField 的背景颜色不会变为 'grayed out'

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:34:15 27 4
gpt4 key购买 nike

通常当您使用 setEditable(false)setEnabled(false) 时,JTextField 的背景/前景色会变成“灰色”。但是,如果之前使用 setBackground(color) 设置了背景颜色(例如 white),则调用 setEnabledsetEditable 将不再影响背景颜色。相反,它会被之前设置的颜色覆盖。

在 WinForms (.NET) 中,这是通过将背景颜色“重置”为非覆盖默认值来解决的,即 Color.Empty。这将导致文本框恢复标准行为。但是,我还没有为 JTextField 找到类似的“默认值”。如何将 JTextField 恢复为使用默认颜色并在禁用或设置为只读时自动切换颜色?前景色也有类似的问题。

最佳答案

您需要将字段的背景颜色重置为其默认值。

默认的 UI 委托(delegate)正在寻找 UIResource 以确定用于给定字段的正确阴影(基于安装的外观和感觉)。

您可以使用以下方法重置背景颜色:

JTextField#setBackground(UIManager.getColor("TextField.background"))

或者,您可以为您的自定义背景构建自定义 UIResource

看看ColorUIResource了解更多详情。

关于java - 在之前更改背景颜色后禁用时,JTextField 的背景颜色不会变为 'grayed out',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15693497/

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