【发布时间】:2013-09-13 03:39:07
【问题描述】:
我正在尝试将 css/html 表“附加”到 jtextpane。
当我这样做时:setText 像这样:
jtextpane.setText(css)
我得到了想要的结果[完美!]:
但是当我尝试像这样追加文本到 jtextpane 时:
int len = jtextpane.getDocument().getLength();
jtextpane.setCaretPosition(len);
jtextpane.replaceSelection(css);
我得到这样嵌入的 html 代码:
问:如何在 jtextPane 中追加表格的结果(不是代码)?我假设我在 replaceSelection 上做错了什么?!在此先感谢
编辑 - 附加信息:
- 要将所有文本信息附加到 jtextpane,我使用以下静态方法:
public static void appendToPane(JTextPane jtextpane, String userText, Color color) { StyleContext sc = StyleContext.getDefaultStyleContext(); AttributeSet aset = sc.addAttribute(SimpleAttributeSet.EMPTY, StyleConstants.Foreground, color); aset = sc.addAttribute(aset, StyleConstants.FontFamily, "Myriad Pro"); aset = sc.addAttribute(aset, StyleConstants.FontSize, 20); int len = jtextpane.getDocument().getLength(); jtextpane.setCaretPosition(len); jtextpane.setCharacterAttributes(aset, false); jtextpane.replaceSelection(userText); }
-
关于我拥有的 jtextpane 的实例化:
jtextpane.setContentType("text/html");
原来的css字符串是这样的:
table.imagetable { 字体系列:verdana、arial、sans-serif; 字体大小:11px; 颜色:#333333; 边框宽度:1px; 边框颜色:#999999; 边框折叠:折叠; } table.imagetable th { 背景:#b5cfd2 url('cell-blue.jpg'); 边框宽度:1px; 填充:8px; 边框样式:实心; 边框颜色:#999999; } table.imagetable td { 背景:#dcddc0 url('cell-grey.jpg'); 边框宽度:1px; 填充:8px; 边框样式:实心; 边框颜色:#999999; }
【问题讨论】:
-
这可能取决于之前的情况。样式标签必须放在文档的头部,如果你附加的内容是封闭的,那么你可能会遇到问题。我不太了解 Java 如何呈现 HTML 请注意。
-
如果你能准确地提供
css是什么,以及jtextpane.getText()在追加之前是什么,那会有所帮助 -
感谢@Cruncher,我刚刚做到了。
标签: java html css swing jtextpane