Контекст
На данный момент у меня есть 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](https://i.stack.imgur.com/Xoaba.png)
С общей идеей, что когда они набирают последний 'th', все это перемещается вниз ко второй строкевместе с точкой вставки при вводе текста (аналогично любому другому текстовому редактору).
Вопрос
Моя первоначальная мысль былареализовать этот вид упаковки вручную, используя Key Listener, но мне было интересно, есть ли лучший подход / другой компонент, который мог бы легче достичь этой функциональности?