【发布时间】:2011-01-15 14:22:52
【问题描述】:
如何让JLabel 显示一个显示为灰色的HTML 字符串(这是JLabels 不显示HTML 文本的行为)?除了通过修改foreground 属性来实际更改颜色之外,还有其他方法吗?
JLabel label1 = new JLabel("Normal text");
JLabel label2 = new JLabel("<html>HTML <b>text</b>");
// Both labels are now black in colour
label1.setEnabled(false);
label2.setEnabled(false);
// label1 is greyed out, label2 is still black in colour
非常感谢您的所有回复。据我所知,Java 在使用 HTML 文本时似乎不支持 JLabels 自动变灰。考虑到限制,Suraj's solution 最接近修复。
但是,我尝试了另一种开箱即用的方法,我将 HTML 文本 JLabels 放在内部 JPanel 中,然后这样做:
mInnerPanel.setEnabled(shouldShow); //shouldShow is a boolean value
这没有奏效。对这种方式有什么建议吗?
编辑:添加implemented solution。
【问题讨论】:
-
你应该编辑你的原始问题而不是发布另一个问题
-
@Lombo,我的错,我没有意识到 - 现在删除了前一个。
-
这似乎已在 Java 1.7 中修复。
-
@SystemParadox 感谢您告知我们!
标签: java swing jlabel appearance