gpt4 book ai didi

java - JList 自定义渲染器和 HTML

转载 作者:行者123 更新时间:2023-12-02 00:34:03 27 4
gpt4 key购买 nike

我想制作一个 JListh,它将在其单元格中显示我的 html 代码,所以我这样做:

public class HtmlCellRenderer extends DefaultListCellRenderer{

/**
*
*/
private static final long serialVersionUID = 1L;

/**
*
*/
public static final int CONST_PREFERED_HEIGHT = 200;

/**
*
*/
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean hasFocus) {
JLabel label = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, hasFocus);
label.setPreferredSize(new Dimension( 50, CONST_PREFERED_HEIGHT ));
if (value != null) {
ExtendedJEditorPane htmlPane = new ExtendedJEditorPane();
label.setLayout(new BorderLayout());
htmlPane.setEditable(false);
htmlPane.setContentType("text/html" );
htmlPane.setText(value.toString());
label.add(htmlPane, BorderLayout.CENTER);
}

return label;
}
}

用于自定义渲染器。这里我创建了一个新的 JEditPane (我扩展它是为了在我的 html 中绘制一些自定义标签)并将其插入到单元格的标签中,但结果是我的单元格无法识别 html 并打印原始文本。

输入文本为:

"<table><tr><td rowspan=\"2\"><img src=\"data:image/jpeg;base64,"+myImageData+\" align=\"left\" /></td><td><h3>Test1 </h3><hr></td></tr><tr><td><p>Test</td></tr></table>"

在 toString 执行的情况下,列表条目对象将返回该字符串。

最佳答案

而不是:

return label;

尝试使用这个:

return htmlPane;

关于java - JList 自定义渲染器和 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8278434/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com