将jtextarea镜像到jtextpane

时间:2018-06-27 05:45:52

标签: jtextarea jtextpane

我试图将JTextArea镜像到JTextPane。

对于JTextArea到JTextArea

JTextArea a = new JTextArea ();
JTextArea b = new JTextArea ();

b.setDocument(a.getDocument());

我要使用JtextPane的原因是,每当我在JTextArea中键入html标记时,它都会像网页一样自动在JTextPane中格式化。

当我用JTextPane替换它时,它给了我

  

模型必须为StyledDocument

所以我尝试添加StyledDocument。

StyledDocument doc = (StyledDocument) a.getDocument();  

结果为

  

javax.swing.text.PlainDocument无法转换为   javax.swing.text.StyledDocument

如何使用JtextPane实现呢?

谢谢!

1 个答案:

答案 0 :(得分:0)

您的方法是错误的。为了实现所需的功能,您将需要设置JTextPane来容纳HTMLDocument,并使用此HTMLDocument的方法通过诸如insertHTML或HTMLEditorKit及其read方法之类的内容来插入JTextArea的内容。 / p>

尝试类似的事情:

JTextArea myJta = new JTextArea();
JTextPane myJtp = new JTextPane();
myJtp.setContentType("text/html");
...

public void insertHTML(String html, int location) {
    try {
        HTMLEditorKit kit = (HTMLEditorKit) editor.getEditorKit();
        Document doc = editor.getDocument();
        StringReader reader = new StringReader(html);
        kit.read(reader, doc, location);
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}
...
insertHTML(myJta.getText(),0);