【问题标题】:how to append css/html table in jtextpane如何在 jtextpane 中附加 css/html 表
【发布时间】: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


【解决方案1】:

您必须在 JTextPane 中声明您使用的文本类型

jtextPane.setContentType("text/html");

如果这不起作用,请尝试使用正确的 <html> 包含您的文本,这应该可以。我前段时间也遇到了同样的问题,正在找具体的代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    • 2014-07-08
    • 1970-01-01
    • 2015-01-28
    相关资源
    最近更新 更多