首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JEditorPane / ListCellRenderer损坏的img标签

使用JEditorPane / ListCellRenderer损坏的img标签
EN

Stack Overflow用户
提问于 2009-10-21 07:06:04
回答 2查看 718关注 0票数 0

我在扩展JEditorPane的ListCellRenderer中有这段代码。编辑器窗格没有显示图像,而是显示了一个“破碎的图标”。它有什么问题?

代码语言:javascript
复制
public class TweetCellRenderer extends JEditorPane implements ListCellRenderer {

    public Component getListCellRendererComponent(
        javax.swing.JList list,
        Object value,
        int index,
        boolean isSelected,
        boolean cellHasFocus
    ) {

        setBorder(BorderFactory.createEmptyBorder(3, 3, 3, 6));

        StringBuffer sb = new StringBuffer();

        setContentType("text/html");

        sb.append("<html><body>");
        sb.append("<img src='http://www.google.co.uk/images/firefox/video.png' />");

        sb.append("</body></html>");

        System.out.println(sb);

        setText(sb.toString());  

        setBackground(isSelected ? SELECTED_BG : BG);        
        setForeground(isSelected ? SELECTED_FG : FG);

        return this;
    }
}
EN

回答 2

Stack Overflow用户

发布于 2009-10-20 23:59:18

每次呈现单元格时,都会再次解析HTML。在渲染器中使用HTML通常会导致较差的性能,这并不奇怪。如果HTML刚刚被解析,我猜还没有时间开始图像的增量加载。通常,HTML会被添加到组件中,然后在重绘事件发生时会有延迟,这允许在单独的线程中加载图像来完成它的工作。

您可以通过返回与每个单元格相关联的组件来避免这种情况。

票数 0
EN

Stack Overflow用户

发布于 2009-10-21 08:57:04

从URL创建一个ImageIcon,然后将图标添加到列表模型中。我认为JList有一个默认的图标渲染器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1597790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档