java GUI - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Сообщество Календарь
Вернуться   Форум администраторов игровых серверов > Полезное / Common > Программирование / Programming > Java

Java В данном форуме вы сможете найти много полезной информации по платформе Java. Подробные статьи, исходные коды и конечно учебники как для новичков так и профессиональных Java разработчиков вы найдёте здесь. Если у вас есть вопрос или хотите поделится своими наработками, пожалуйста, делайте это в этой теме.

Ответ
Опции темы
Непрочитано 22.05.2011, 21:32   #1
Аватар для linliss
Герой

Автор темы (Топик Стартер) java GUI

Написал небольшую програмку с JTextArea(в который выводнится какой-то текст), текст добавляется через append.
Мне нужно чтобы текст прокручивался по мере его поступления(кто запускал ПТС сервер тот поймет как мне нужно сделать).

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

наглядный пример

Последний раз редактировалось linliss; 22.06.2012 в 02:13.
linliss вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 22.05.2011, 23:00   #2
Аватар для VISTALL
Illussion is real

По умолчанию Re: java GUI

Цитата:
Сообщение от linliss Посмотреть сообщение
Начал я познавать swing.
Написал небольшую програмку с JTextArea(в который выводнится какой-то текст), текст добавляется через append.
Мне нужно чтобы текст прокручивался по мере его поступления(кто запускал ПТС сервер тот поймет как мне нужно сделать).

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

наглядный пример
нужно JTextArea сначала всунуть в JScrollPane и оно добавит скрол
VISTALL вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 22.05.2011, 23:18   #3
Пользователь

По умолчанию Re: java GUI

Код:
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
Aquanox вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 22.05.2011, 23:33   #4
Аватар для VISTALL
Illussion is real

По умолчанию Re: java GUI

Цитата:
Сообщение от VISTALL Посмотреть сообщение
нужно JTextArea сначала всунуть в JScrollPane и оно добавит скрол
не понял сорь
VISTALL вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 22.05.2011, 23:37   #5
Аватар для linliss
Герой

Автор темы (Топик Стартер) Re: java GUI

Цитата:
Сообщение от 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 минуты
Висталл, спасибо за идею со скроллом

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

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

Добавлено через 21 час 24 минуты
мда... вот это эпический бред... если тыкнуть мышкой в поле с текстом как нужно работать небудет, если не тыкать то все нормально...

Последний раз редактировалось linliss; 23.05.2011 в 21:05. Причина: Добавлено сообщение
linliss вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 23.05.2011, 22:00   #6
Аватар для Хлорка
Пользователь

Lightbulb Re: java GUI

Цитата:
Сообщение от linliss Посмотреть сообщение
Начал я познавать swing.
...
запускал ПТС сервер тот поймет как мне нужно сделать).
...
Вставь свой компонент, внутрь контейнера JScrollPane, информация доступна у производителя Java.

http://download.oracle.com/javase/tu...crollpane.html
Хлорка вне форума Отправить сообщение для Хлорка с помощью ICQ Ответить с цитированием
Сказали спасибо:
Непрочитано 24.05.2011, 07:29   #7
Аватар для linliss
Герой

Автор темы (Топик Стартер) Re: java GUI

Цитата:
Сообщение от Хлорка Посмотреть сообщение
Вставь свой компонент, внутрь контейнера JScrollPane, информация доступна у производителя Java.

http://download.oracle.com/javase/tu...crollpane.html
Код:
JTextPane textPane = new JTextPane(document);
textPane.setEditable(false);
textPane.setFocusable(false);
JScrollPane scrollPane = new JScrollPane(textPane);
frame.add(scrollPane, BorderLayout.CENTER);

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

Добавлено через 10 часов 20 минут
закройте тему... разобрался...

Последний раз редактировалось linliss; 24.05.2011 в 17:49. Причина: Добавлено сообщение
linliss вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 28.05.2011, 00:19   #8
Аватар для linliss
Герой

Автор темы (Топик Стартер) Re: java GUI

Код:
for(int i = 0; i <= 1000000; i++)
{
	document.insertString(document.getLength(), "line number -> " + i, style);
}
Если в JTextPane вывести 100000-200000 (иногда больше) строк форматированого текста намертво виснет интерфейс, но прога себе дальше работает.
Можно как-то решить эту проблему, кроме как очищать JTextPane? (вывел 50000 строк и очистка)
linliss вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 28.05.2011, 09:05   #9
Аватар для Azagthtot
Эксперт

По умолчанию Re: java GUI

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

Автор темы (Топик Стартер) Re: java GUI

Не могу найти нормальной документации по FIFO, с примером кода.. блин..

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


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
java [Red Dragon] Lineage II 6 03.09.2010 09:00
PTS и JAVA teshu Курилка / Yak floor 10 15.08.2010 20:52
java Shot Lineage II 2 27.02.2010 12:35
Java virus Курилка / Yak floor 6 20.12.2008 03:50


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 15:07. Часовой пояс GMT +3.

Вверх