Originariamente inviato da Skaffa
TextPane2 ha diversi attributi, tipo immagini, stili di testom font etc che andranno copiate nell'altro textPane
Se è così, allora le cose si complicano un po' ... ma è comunque fattibile, entro certi limiti.
Prova questo:
codice:
public static void appendStyledText(JTextPane srcTextPane, JTextPane dstTextPane) {
StyledDocument srcDoc = srcTextPane.getStyledDocument();
StyledDocument dstDoc = dstTextPane.getStyledDocument();
Element root = srcDoc.getDefaultRootElement();
appendElementToStyledDoc(root, dstDoc);
}
private static void appendElementToStyledDoc(Element srcElement, StyledDocument dstDoc) {
if (!srcElement.isLeaf()) {
int count = srcElement.getElementCount();
int start = dstDoc.getLength();
for (int i = 0; i < count; i++) {
Element childElement = srcElement.getElement(i);
appendElementToStyledDoc(childElement, dstDoc);
}
int end = dstDoc.getLength();
dstDoc.setParagraphAttributes(start, end-start, srcElement.getAttributes(), false);
} else {
try {
Document doc = srcElement.getDocument();
String text = doc.getText(srcElement.getStartOffset(), srcElement.getEndOffset()-srcElement.getStartOffset());
dstDoc.insertString(dstDoc.getLength(), text, srcElement.getAttributes());
} catch (BadLocationException e) {
// Non dovrebbe succedere.
}
}
}
L'ho scritto velocemente, non è perfetto e non pretendo che lo sia ... 
Non l'ho provato con tutti i possibili tipi di attributi e strutture del testo. Per certe cose sicuramente non funziona bene. Mi riferisco ad esempio a dei Component inseriti tra gli attributi.
Comunque prova ....