powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / JTextArea?
8 сообщений из 8, страница 1 из 1
JTextArea?
    #34654550
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, пожалуйста, если я программно вывожу текст в JTextArea строчка за строчкой, типа журнал работы чего-то, как сделать программный скролинг текста чтобы всегда была видна последняя добавленная строка? У меня почему-то всегда видно только начало текста, а что бы посмотреть "что же там внизу" надо вручную крутить скролинг...
...
Рейтинг: 0 / 0
JTextArea?
    #34654595
Дуремар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте для начала установить курсор в конец текста , если не прокатит, то курить это .
...
Рейтинг: 0 / 0
JTextArea?
    #34654609
Interrupt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Например так:
Код: plaintext
textArea.setCaretPosition( int  position) 
Где position - длина текста в textArea.
...
Рейтинг: 0 / 0
JTextArea?
    #34655495
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДуремарПопробуйте для начала установить курсор в конец текста , если не прокатит, то курить это .

Первое пробовал - не катит. Приложение валится при определении длины текста где-то на 200-тысячной строке вывода :)) А их может быть до полумиллиона. К тому же производительность падает во много раз.

Со вторым никак не разберусь насчёт Rectangle - как мне его определить.

Суть в том, что некая процедура производит массированную обработку базы данных и результат обработки каждой записи пишет в "журнал". Ход выполнения виден сразу же, а в случае чего можно copy-paste из JTextArea и на разборки. Собственно всё давно работает на AWT, но, как обычно, "дурная голова рукам покоя не даёт", захотелось переделать то же самое на Swing. И тут выяснилась одна особенность TextArea (AWT) - скролит текст самостоятельно, а JTextArea почему-то не хочет :(
...
Рейтинг: 0 / 0
JTextArea?
    #34655750
Дуремар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GarrickПриложение валится при определении длины текста где-то на 200-тысячной строке вывода :)) А их может быть до полумиллиона.
Жесть.... Никогда с такими большими текстами не работал... Так что я вам, наверное, не советчик. Попробуйте все таки что нибудь вроде этого:
Код: plaintext
1.
2.
3.
  JTextArea textArea =...
  java.awt.Rectangle rect =  new  java.awt.Rectangle( 0 , textArea.getHeight() -  3 ,  1 ,  1 );
  textArea.scrollRectToVisible(rect);
С цифорками можно поиграться еще...
Но все равно я сомневаюсь, что JTextArea будет корректно работать с такими огромными текстами. Может стоит обрезать текст? Или требуется, чтобы выводился обязательно весь текст?
...
Рейтинг: 0 / 0
JTextArea?
    #34656938
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДуремарЖесть.... Никогда с такими большими текстами не работал... Так что я вам, наверное, не советчик. Попробуйте все таки что нибудь вроде этого:
Код: plaintext
1.
2.
3.
  JTextArea textArea =...
  java.awt.Rectangle rect =  new  java.awt.Rectangle( 0 , textArea.getHeight() -  3 ,  1 ,  1 );
  textArea.scrollRectToVisible(rect);
С цифорками можно поиграться еще...


Большое спасибо, так конечно работает намного быстрее чем
Код: plaintext
textArea.setCaretPosition( int  position) 
Правда как-то подёргивается изображение в отличии от плавной автоматической прокрутки AWT TextArea. Но всё таки более-менее желаемый результат.
Дуремар
Но все равно я сомневаюсь, что JTextArea будет корректно работать с такими огромными текстами. Может стоит обрезать текст? Или требуется, чтобы выводился обязательно весь текст?
А вот тут вы оказались правы. До конца он так и не дошел :(( на 450-тыс. обломился, наверное это ещё зависит от объёма ОЗУ, но у пользователей его ещё меньше будет. К сожалению, резать текст нежелательно, может быть переодически куда-то в текстовый файл сливать или какой-нибудь LOG. Будем ломать голову как свободное время появится, а пока всё замечально продолжает работать на AWT... вот и говорите после этого про "прогресс..." :))
...
Рейтинг: 0 / 0
JTextArea?
    #34668047
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, вопрос разрешился. Оказыается, если писать в JTextArea (append) в отдельном потоке, то скролинг текста в окне производится сам собой, так же как и в AWT TextArea. Правда, в AWT TextArea для того же эффекта отдельный поток создавать нет необходимости. Глюк это или фича - не понятно...
...
Рейтинг: 0 / 0
JTextArea?
    #34668700
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может проще выводить последнюю строку первой?

Код: plaintext
Meo voto
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / JTextArea?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]