Переносить длинные слова в 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).

16
задан Community 23 May 2017 в 12:34
поделиться