Вопрос

Я хочу, чтобы моя jtextarea изменяется измени о себе (расширяется вертикально), когда последняя строка (которую может предложить высоту текстовой области), и пользователь хочет начать новую строку. Вы знаете, как текстовое поле в Мсордере.

У меня есть идея использовать getLineCount() и определить (при необходимости) новую высоту jtextarea. У вас есть или знать лучшие подходы для реализации этого?

Это было полезно?

Решение

На самом деле, то JTextArea Всегда имеет правильный размер, поэтому все строки текста видны. Что вы испытываете, вероятно, вы завернули текстовую область в JScrollPane. Отказ Просто опустите панель прокрутки и сделайте текстовую область прямым ребенком контейнера.

Другое решение состоит в том, чтобы прослушать изменение изменений событий текстовой области и размер панели прокрутки соответственно. Таким образом, вы можете вырасти до определенного размера, а затем начать отображать полосы прокрутки (например, когда кто-то пастеет 500КБ текста в текстовую область).

Другие советы

У меня такая же проблема. Из моих тестов я не верю, что jtextarea динамически устанавливает свой размер. Вместо этого его размер, кажется, ограничен его контейнером (в моем случае jpanel). Однако jtextarea изменяет предпочтительный размер на основе текста, который он содержит. Из документации:

Java.awt.textarea имеет два ряда свойств и столбцов, которые используются для определения предпочтительного размера. Jtextarea использует эти свойства для указания предпочтительного размера просмотра при включении в jscrollpane, чтобы соответствовать функциональности, предоставленному java.awt.textarea. Jtextarea имеет предпочтительный размер того, что нужно для отображения всего текста, так что он функционирует правильно внутри JScrollpane. Если значение для строк или столбцов равно нулю, предпочтительный размер вдоль этой оси используется для предпочтительного размера ViewSept по той же оси.

У меня была та же проблема, я положил jtextarea в jscrollpane и установил предпочтительный размер jtextarea, и я считаю, что это причина проблемы.

Таким образом, правильное решение состоит в том, чтобы поставить JTextarea в jscrollpane и не прикасайтесь к предпочтительному размеру jtextarea, установите вместо этого jscrollpane.

Перейти к jtextarea "Характеристики"- Контрольный список"линией".

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top