Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
java GUI
#1
Написал небольшую програмку с JTextArea(в который выводнится какой-то текст), текст добавляется через append.
Мне нужно чтобы текст прокручивался по мере его поступления(кто запускал ПТС сервер тот поймет как мне нужно сделать).

мб какой-то другой способ вывода текста использовать?

наглядный пример
[Изображение: 7231c9eb8b2d.jpg]
Ответ
#2
linliss Написал:Начал я познавать swing.
Написал небольшую програмку с JTextArea(в который выводнится какой-то текст), текст добавляется через append.
Мне нужно чтобы текст прокручивался по мере его поступления(кто запускал ПТС сервер тот поймет как мне нужно сделать).

мб какой-то другой способ вывода текста использовать?

наглядный пример
[Изображение: 7231c9eb8b2d.jpg]

нужно JTextArea сначала всунуть в JScrollPane и оно добавит скрол
Ответ
#3
Код:
textarea.setText(new StringBuilder(message).append("\n").append(textarea.getMessage()).toString()));

второй варивант через документ
Код:
textarea.getDocument().insert(...)


http://www.java2s.com <- Swing Examples Here
for(;Forum.getPostCount() < Integer.MAX_VALUE; Forum.writeNewPost()); | TERA Video | GamezTERA Emu
Ответ
#4
VISTALL Написал:нужно JTextArea сначала всунуть в JScrollPane и оно добавит скрол

не понял сорь
Ответ
#5
Aquanox Написал:
Код:
textarea.setText(new StringBuilder(message).append("\n").append(textarea.getMessage()).toString()));

второй варивант через документ
Код:
textarea.getDocument().insert(...)


http://www.java2s.com <- Swing Examples Here
щас попробуем....

Добавлено через 24 минуты
.... блин задолбался уже.... 4 часа сижу ниче не получается...

Добавлено через 9 часов 32 минуты
Висталл, спасибо за идею со скролломSmile

переписал полностью метод инициализации гуи, код сократился в 2.5 разаBig Grin
теперь у меня работают скролл панельки...Smile

но все равно оно само вниз не прокручиватся(как в консоли например...):negodue::negodue::negodue::negodue:

Добавлено через 21 час 24 минуты
мда... вот это эпический бред... если тыкнуть мышкой в поле с текстом как нужно работать небудет, если не тыкать то все нормально...
Ответ
#6
linliss Написал:Начал я познавать swing.
...
запускал ПТС сервер тот поймет как мне нужно сделать).
...
Вставь свой компонент, внутрь контейнера JScrollPane, информация доступна у производителя Java.

http://download.oracle.com/javase/tutori...lpane.html
Ответ
#7
Хлорка Написал:Вставь свой компонент, внутрь контейнера JScrollPane, информация доступна у производителя Java.

http://download.oracle.com/javase/tutori...lpane.html

Код:
JTextPane textPane = new JTextPane(document);
textPane.setEditable(false);
textPane.setFocusable(false);
JScrollPane scrollPane = new JScrollPane(textPane);
frame.add(scrollPane, BorderLayout.CENTER);


если хоть раз тынуть мышкой в окно - текст перестает прокручиватся...

Добавлено через 10 часов 20 минут
закройте тему... разобрался...
Ответ
#8
Код:
for(int i = 0; i <= 1000000; i++)
{
    document.insertString(document.getLength(), "line number -> " + i, style);
}

Если в JTextPane вывести 100000-200000 (иногда больше) строк форматированого текста намертво виснет интерфейс, но прога себе дальше работает.
Можно как-то решить эту проблему, кроме как очищать JTextPane? (вывел 50000 строк и очистка)
Ответ
#9
linliss Написал:Если в JTextPane вывести 100000-200000 (иногда больше) строк форматированого текста намертво виснет интерфейс, но прога себе дальше работает.
Можно как-то решить эту проблему, кроме как очищать JTextPane? (вывел 50000 строк и очистка)
Можно. В случае такого объема информации использовать стандартные компоненты Swing нет никакого смысла. Что же можно сделать?
Во-первых, хранить логи в каком-то другом месте, например в родном лог-файле.
Второе. Отображение логов делать "вручную", ориентируясь на позицию скролла (которую получить не сложно) и отрисовывая их самостоятельно. Да, согласен, будет некоторое количество "ручной работы", но это самое оптимальное, показывать не весь лог, а окно.
Как вариант - на том же JTextPane сделать FIFO, т.е. не очищать, а удалять первые строки по достижению определенного лимита.
Ответ
#10
Не могу найти нормальной документации по FIFO, с примером кода.. блин..Sad

Если оставить все как есть, то прога проработает 2-3 дня и зависнет интерфейс.
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Сервер майнкрафт 1.17 не видит Java 16 Erikvd2244 0 656 05-18-2023, 05:59 PM
Последний пост: Erikvd2244
  Требуется Java разработчик в RVR мод л2 slimak 0 2,463 03-19-2018, 11:08 PM
Последний пост: slimak
  Java Unicode Boris2105 1 2,871 08-10-2017, 02:09 AM
Последний пост: klubheads
  Java junior Tails 18 7,407 07-17-2017, 03:52 PM
Последний пост: n3k0nation
  Установить старую java ZIP 2 3,498 09-27-2016, 10:39 AM
Последний пост: Aquanox
  Учебники и книги по Java 2 CHIPSET 47 57,024 09-06-2016, 10:14 PM
Последний пост: sawayik
  Java == API == Libraries Kenrix 1 2,263 05-11-2014, 05:28 PM
Последний пост: n3k0nation
  Java 8 JavaMan 33 9,765 04-08-2014, 01:06 PM
Последний пост: SouthBridge
  Опрос от Оракла: Особенности Java EE 8 JavaMan 0 1,557 01-11-2014, 04:13 AM
Последний пост: JavaMan
  Java NB Задачи на последовательность NDWT 0 2,247 12-26-2013, 04:47 PM
Последний пост: NDWT

Перейти к форуму:


Пользователи, просматривающие эту тему: 6 Гость(ей)