我正在创建一个应用程序,在其中我们在JList中显示几百条记录。
有时,我们希望使用不同的字体颜色突出显示每个记录中的某些值。
我尝试过使用完美无缺的HTML,但如果这些记录包含任何类型的html标记,那将会出现严重错误,因为它们会被渲染。
不幸的是,您无法:
normaltext<html><font color="red">redtext</font></html>
因为看起来HTML必须在开头。
我已经尝试覆盖getListCellRendererComponent,我可以在其中创建一个JPanel,并为具有不同前景色的记录的每个部分使用JLabel,但这对于大型记录来说效率很低。
由于许可问题,我宁愿不使用任何第三方解决方案。
有没有人有这种情况的解决方案?
由于
答案 0 :(得分:3)
我尝试过使用完美无缺的HTML,尽管这样会有用 如果这些记录中包含任何类型的HTML,那就太可怕了 标签,因为它们将被渲染。
实际上,如果文本包含html标签,您可以转义标签并将其包装在<html> escaped text of record</html>
标记所需颜色的文本中
更新工作示例
public static void main(String[] args) {
JFrame f=new JFrame();
String text="<html>An example of tag <html> with <font color='red'><input></font> tag colored</html>";
f.add(new JLabel(text));
f.pack();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}