Hallo,
ich möchte eine eigenen ListCellRenderer schreiben, der ein HTMLPanel (Cobra-Bibliothek: Cobra: Pure Java HTML Renderer & Parser (Open Source)) zurückliefert. Allerdings werden Bilder (als <img>-Tag) nicht richtig angezeigt, da diese wohl erst im Hintergrund geladen werden. Dann wurden die einzelnen Zeilen aber schon gezeichnet. Man sieht Bilder nur mal kurz aufflackern, wenn man wild hin- und herklickt/scrollt. Wie kann man das beheben?
ich möchte eine eigenen ListCellRenderer schreiben, der ein HTMLPanel (Cobra-Bibliothek: Cobra: Pure Java HTML Renderer & Parser (Open Source)) zurückliefert. Allerdings werden Bilder (als <img>-Tag) nicht richtig angezeigt, da diese wohl erst im Hintergrund geladen werden. Dann wurden die einzelnen Zeilen aber schon gezeichnet. Man sieht Bilder nur mal kurz aufflackern, wenn man wild hin- und herklickt/scrollt. Wie kann man das beheben?
Java:
@Override
public Component getListCellRendererComponent(JList list, Object value, int index,
boolean isSelected, boolean cellHasFocus) {
HtmlPanel htmlPanel = new HtmlPanel();
htmlPanel.setPreferredSize(new Dimension(100, 100));
htmlPanel.setDefaultOverflowX(1000);
htmlPanel.setDefaultOverflowY(500);
UserAgentContext ucontext = new SimpleUserAgentContext();
SimpleHtmlRendererContext rcontext = new SimpleHtmlRendererContext(htmlPanel, ucontext);
String html = ... // HTML mit <img>
htmlPanel.setHtml(html, "", rcontext);
return htmlPanel;
}