Java 在Swing中,是否有设置JList禁用前景颜色的属性?
在Swing中,是否有设置JList禁用前景颜色的属性 我正在使用Netbeans GUI builder,我想在资源属性文件中添加一个属性,该属性在禁用JList时将JList中文本的颜色设置为不同的默认值。使用Nimbus LAF时,会有不同的颜色,因为禁用时文本为灰色,启用时文本为黑色。我只是不希望它在残疾时变成灰色 标准的前景色就是。前景色Java 在Swing中,是否有设置JList禁用前景颜色的属性?,java,swing,jlist,Java,Swing,Jlist,在Swing中,是否有设置JList禁用前景颜色的属性 我正在使用Netbeans GUI builder,我想在资源属性文件中添加一个属性,该属性在禁用JList时将JList中文本的颜色设置为不同的默认值。使用Nimbus LAF时,会有不同的颜色,因为禁用时文本为灰色,启用时文本为黑色。我只是不希望它在残疾时变成灰色 标准的前景色就是。前景色 谢谢。如果有要设置的属性,那么程序应该显示要更改的属性。我没有看到Metal或Windows LAF的属性,因此它可能表示这是在UI代码中直接控制的
谢谢。如果有要设置的属性,那么程序应该显示要更改的属性。我没有看到Metal或Windows LAF的属性,因此它可能表示这是在UI代码中直接控制的。默认ListCellRenderer扩展了
JLabel
。在其getListRenderComponent
方法中,它根据传入的JList
设置其启用状态
在BasicLabelUI
中,用于绘制禁用的JLabel
文本的代码执行了一些工作,以使用阴影效果绘制文本。在许多子类中,您可以找到查找“Label.disabledForeground”
UI属性的代码。似乎在查找标签。禁用文本“
您有两个选择:
UIManager
中设置“Label.disabledText”
属性,这将使所有被禁用的JLabel
实例和子类采用此颜色JList
创建一个自定义呈现程序,该呈现程序测试JList
的启用状态,然后执行您想要的任何自定义代码-或者,如果您想让启用状态测试看起来相同,而不管其启用状态如何,则完全忽略启用状态测试我建议您采用自定义渲染器方法,因为很难说
JLabel
属性的更改将显示在何处,因为该类在许多不同的组件中用作构建块。感谢您的提示。我忘了渲染器。最终扩展了DefaultListCellRenderer,覆盖了GetListRenderComponent,调用了超级GetListRenderComponent,并在返回之前调用了setEnabled(true)。这正是我真正想要的。