代码之家  ›  专栏  ›  技术社区  ›  Jay R.

在Swing中,是否有设置jList禁用前景颜色的属性?

  •  2
  • Jay R.  · 技术社区  · 14 年前

    在Swing中,是否有设置jList禁用前景颜色的属性?

    我使用的是NetBeans GUI Builder,我想在资源属性文件中添加一个属性,当jlist被禁用时,该属性会将jlist中文本的颜色设置为不同的默认值。使用Nimbus LAF,这有一种不同的颜色,因为文本在禁用时为灰色,在启用时为黑色。我只是不希望它在残疾时变成灰色。

    标准的前景色就是前景色。

    谢谢。

    2 回复  |  直到 14 年前
        1
  •  3
  •   akf    14 年前

    这个 DefaultListCellRenderer 延伸 JLabel . 在其 getListRendererComponent 方法,它基于 JList 那是传进来的。

    油漆代码失效 标签类 文本在 BasicLabelUI 用阴影效果来绘制文本。在许多子类中,您将找到查找 "Label.disabledForeground" UI属性。 The Nimbus defaults 似乎在寻找 "Label.disabledText" .

    您有几个选择:

    1. 您可以设置 “label.disabledtext” 中的属性 UIManager ,这将使 标签类 实例 子类 不能使用这种颜色的。
    2. 可以为您的 列表框 测试 列表框 然后做任何你想做的定制代码——或者如果你想让它看起来一样,不管它的启用状态如何,完全忽略启用状态测试。

    我建议您采用自定义渲染器方法,因为很难说 标签类 属性将显示,因为该类在许多不同的组件中用作构建块。

        2
  •  1
  •   camickr    14 年前

    如果有要设置的属性,则 UIManager Defaults 程序应该显示要更改的属性。我看不到metal或windows laf的属性,因此它可能表明这是在ui代码中直接控制的。