我试图将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实现呢?
谢谢!
答案 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);