включение более умного переноса текста в JTextArea - PullRequest
4 голосов
/ 30 августа 2010

Контекст

На данный момент у меня есть JTextArea, который был создан следующим образом:

JTextArea descArea = new JTextArea();
descArea.setFont(style.getFont());
descArea.setLineWrap(true);
descArea.setName("descArea");
descArea.setToolTipText(resourceMap.getString("descArea.toolTipText"));
descArea.setText(model.getName());
JScrollPane descPane = new JScrollPane(descArea,
            JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
            JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

Когда пользователь вводит что-то в поле,он действительно переносится (согласно descArea.setLineWrap(true)), но делает это немного неуклюже, разбивая слова, подобные следующему примеру:

alt text

Пользователи нашего программного обеспечения ожидают упаковкибыть немного более умным и автоматически генерировать что-то более похожее на:

alt text

С общей идеей, что когда они набирают последний 'th', все это перемещается вниз ко второй строкевместе с точкой вставки при вводе текста (аналогично любому другому текстовому редактору).


Вопрос

Моя первоначальная мысль былареализовать этот вид упаковки вручную, используя Key Listener, но мне было интересно, есть ли лучший подход / другой компонент, который мог бы легче достичь этой функциональности?

1 Ответ

7 голосов
/ 30 августа 2010

Уже реализовано.

  textArea.setWrapStyleWord(true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...