Seltsamer Textumbruch mit formatiertem Text in JTextPane mit Java 7

Ich habe zwei verschiedene Editoren, die JTextPane mit seltsamen Fehlern in Java 7 verwenden, die in den vorherigen JVM-Versionen nicht aufgetreten sind. Dies passiert mit langen Zeilen, die gestalteten Text oder Komponenten enthalten.

Hier ist ein Beispiel, das diesen Fehler demonstriert. In diesem Beispiel wird der Standardstil bei jedem Einfügen eines Zeichens auf den gesamten Text angewendet. Ich habe es mit dem JDK 1.7.0_04 getestet.

import java.awt.BorderLayout;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*;

public class BugWrapJava7 extends JFrame {

    JTextPane jtp;
    StyledDocument doc;

    public BugWrapJava7() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new BorderLayout());
        jtp = new JTextPane();
        add(jtp, BorderLayout.CENTER);
        jtp.setText("\ntype some text in the above empty line and check the wrapping behavior");
        doc = jtp.getStyledDocument();
        doc.addDocumentListener(new DocumentListener() {
            public void insertUpdate(DocumentEvent e) {
                insert();
            }
            public void removeUpdate(DocumentEvent e) {
            }
            public void changedUpdate(DocumentEvent e) {
            }
        });
        setSize(200, 200);
        setVisible(true);
    }
    public void insert() {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                Style defaultStyle = jtp.getStyle(StyleContext.DEFAULT_STYLE);
                doc.setCharacterAttributes(0, doc.getLength(), defaultStyle, false);
            }
        });
    }
    public static void main(String[] args) {
        new BugWrapJava7();
    }
}

Meine Frage ist: Stimmt etwas in meinem Code nicht oder handelt es sich tatsächlich um einen neuen Fehler, der in Java 7 eingeführt wurde? Und wenn es sich um einen neuen JVM-Fehler handelt, gibt es eine Problemumgehung?

Es könnte verwandt sein mitFrage 8666727, aber das Problem liegt hier eher in der falschen Umhüllung als im Erscheinungsbild einer Bildlaufleiste.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage