将文本和图标从一个JTextPane移动到另一个JTextPane

时间:2017-03-09 16:27:47

标签: java chat jtextpane

我正在为聊天室制作GUI。我已经做到这一点,所以用户输入文本,并可以选择最终在JTextPane中的图像。在用户按下回车后,我想在另一个JTextPane中显示它。有没有一种简单的方法可以同时将文本和图标从一个JTextPane移动到另一个JTextPane?我一次只设法移动其中一个。

1 个答案:

答案 0 :(得分:0)

您可以使用ElementIterator按元素复制JTextPane的StyledDocument元素,包括所有样式,包括图标:

static void copy(Document source,
                 Document dest) {
    try {
        dest.remove(0, dest.getLength());

        ElementIterator iterator = new ElementIterator(source);
        Element element;
        while ((element = iterator.next()) != null) {
            if (element.isLeaf()) {
                int start = element.getStartOffset();
                int end = element.getEndOffset();
                String text = source.getText(start, end - start);
                dest.insertString(dest.getLength(), text, 
                    element.getAttributes());
            }
        }
    } catch (BadLocationException e) {
        throw new RuntimeException(e);
    }
}