如何让JLabel
显示的 HTML 字符串显示为灰色(这是JLabel
不显示 HTML 文本的 s 的行为)?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 似乎不支持在使JLabel
用 HTML 文本时自动将 s 变灰。考虑到这些限制, Suraj 的解决方案最接近修复。
但是,我尝试了另一种开箱即用的方法,我将 HTML 文本JLabel
s 放入内部JPanel
并执行此操作:
mInnerPanel.setEnabled(shouldShow); //shouldShow is a boolean value
这没有奏效。对这种方式有什么建议吗?
编辑:添加了实施的解决方案。