Обернуть длинные слова в JTextPane (Java 7)

Во всех версиях Java до 6 стандартное поведение JTextPane, помещенного в JScrollPane, было следующим: перенос строк на границах слов, если это возможно. Если нет, то оберните их в любом случае.

В JDK 7 поведение по умолчанию выглядит следующим образом: по возможности перенос строк на границах слов. Если нет, просто увеличьте ширину JTextPane (никогда не переносите длинные слова).

Это легко воспроизвести, вот SSCCE:


public class WrappingTest extends JFrame
{

    public static void main ( String[] args )
    {
        new WrappingTest(); 
    }

    public WrappingTest ()
    {
        setSize(200,200);
        getContentPane().setLayout(new BorderLayout());
        JTextPane jtp = new JTextPane();
        JScrollPane jsp = new JScrollPane(jtp);
        jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
        getContentPane().add(jsp,BorderLayout.CENTER);
        setVisible(true);
    }

}

Просто запустите его в JDK 6 и в JDK 7, напишите несколько маленьких слов и напишите длинное слово, и вы увидите разницу.

Мой вопрос прост ... новое поведение по умолчанию в JDK 7 полностью испортило мою программу (они должны быть более осторожны в Oracle с изменением этого типа значений по умолчанию ... они кажутся неважными, но когда вы используете JTextPane для отображения данные, которые обычно содержат очень длинные цепочки букв, не так уж и важны - на самом деле я собираюсь подать отчет об ошибке, но я бы хотел обойти это решение, пока / если они его не решат). Есть ли способ вернуться к предыдущему поведению?

Обратите внимание, что я проверил ответ на связанный вопросКак в JTextPane реализована перенос слов, и как сделать так, чтобы строка переносилась без пробелов? но он не отвечает на этот вопрос - он предоставляет способ создания переноса JTextPane без какого-либо отношения к пробелам, но для меня желаемое поведение - разбивать строки на пробел, если это возможно, и в других местах, если это невозможно (как в предыдущем Java версии).

Ответы на вопрос(4)

Ваш ответ на вопрос