【问题标题】:mirror jtextarea to jtextpane将 jtextarea 镜像到 jtextpane
【发布时间】:2018-12-05 21:48:09
【问题描述】:

我试图将 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 实现这一点?

【问题讨论】:

    标签: jtextarea jtextpane


    【解决方案1】:

    你的方法是错误的。为了实现你想要的,你需要设置你的JTextPane来保存一个HTMLDocument,并使用这个HTMLDocument的方法来插入你的JTextArea的内容,比如insertHTML或者使用HTMLEditorKit及其@987654324 @方法。

    试试这样的:

    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);
    

    【讨论】:

      猜你喜欢
      • 2013-10-22
      • 1970-01-01
      • 2013-10-27
      • 1970-01-01
      • 1970-01-01
      • 2011-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多