如何在jtextpane中附加css / html表

时间:2013-09-09 15:28:55

标签: java html css swing jtextpane

我正在尝试将css / html表'追加'到jtextpane。

当我这样做时: setText 就像这样:

        jtextpane.setText(css)

我得到了理想的结果[完美!]:

enter image description here

但是当我尝试将追加文本添加到jtextpane时,如下所示:

        int len = jtextpane.getDocument().getLength();
        jtextpane.setCaretPosition(len); 
        jtextpane.replaceSelection(css);

我得到这样嵌入的html代码: enter image description here

问:如何在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 {       font-family:verdana,arial,sans-serif;       字体大小:11像素;       颜色:#333333;       border-width:1px;       border-color:#999999;       边界崩溃:崩溃;   }   table.imagetable th {       背景:#b5cfd2 url('cell-blue.jpg');       border-width:1px;       填充:8px;       边框式:坚固;       border-color:#999999;   }   table.imagetable td {       背景:#dcddc0 url('cell-grey.jpg');       border-width:1px;       填充:8px;       边框式:坚固;       border-color:#999999;   }   

1 个答案:

答案 0 :(得分:1)

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

jtextPane.setContentType("text/html");

如果这不起作用,请尝试使用正确的<html>包含您应该执行的文本。我以前遇到同样的问题,我正在寻找一个特定的代码。