【问题标题】:Multiple font colours in a single row in a JListJList 中单行中的多种字体颜色
【发布时间】:2014-09-13 02:01:10
【问题描述】:

我正在创建一个应用程序,其中我们在 JList 中显示了几百条记录。

有时,我们希望用不同的字体颜色突出显示每条记录中的某些值。

我已经尝试过使用完美运行的 HTML,尽管如果这些记录中的任何一个包含任何类型的 html 标记,就会出现可怕的错误,因为它们会被渲染。

很遗憾你不能拥有:

normaltext<html><font color="red">redtext</font></html>

似乎 HTML 必须在开头。

我已经尝试覆盖 getListCellRendererComponent,我可以在其中创建一个 JPanel,并为记录的每个部分使用不同的前景色创建一个 JLabel,但这对于大型记录来说效率低下。

由于许可问题,我宁愿不使用任何第三方解决方案。

有没有人有针对这种情况的解决方案?

谢谢

【问题讨论】:

    标签: java swing fonts colors jlist


    【解决方案1】:

    我已经尝试过使用完美的 HTML,尽管这样会成功 如果这些记录中的任何一个包含任何类型的 html,那就大错特错了 标签,因为它们将被渲染。

    实际上,如果文本包含 html 标签,您可以转义标签并将其包装在 &lt;html&gt; escaped text of record&lt;/html&gt; 标记文本与所需颜色

    更新工作示例

    public static void main(String[] args) {
        JFrame f=new JFrame();
        String text="<html>An example of tag &lt;html&gt; with <font color='red'>&lt;input&gt;</font> tag colored</html>";
        f.add(new JLabel(text));
        f.pack();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-27
    • 2011-05-09
    • 1970-01-01
    • 2011-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多