Ищете эффективную консоль на основе Java Swing - PullRequest
5 голосов
/ 24 февраля 2010

Я ищу высокоэффективный Java-компонент Swing, который я могу просто подключить к своему интерфейсу приложения. Я уже пытался использовать классы в Swing, такие как JTextArea, но безрезультатно; они просто недостаточно эффективны и имеют серьезные недостатки. Кроме того, было бы неплохо, если бы у него были стандартные функции консоли, такие как блокировка прокрутки, очистка консоли, цвета и т. Д.

Редактировать: Забыл сказать, что на этой консоли будет много отладочной информации, и она должна полностью прокручиваться.

Приветствия
Chris

Ответы [ 2 ]

6 голосов
/ 25 февраля 2010

Я не вижу, что не так с использованием JTextPane. Он поддерживает атрибуты, которые вы можете указать при добавлении каждого фрагмента текста в консоль. Очистка также очевидна. При добавлении в область прокрутки она также поддерживает прокрутку.

Вы можете добавить блокировку прокрутки, используя Smart Scrolling .

Кроме того, он слишком рано удаляет текст и

Понятия не имею, что это значит, так как текст никогда не удаляется, если вы специально не удалите его из документа.

не позволяет пользователю прокручивать ввод вводится (афаик). Эффект в том, что вы просто видите текст мигает в то время как количество строк остается прежним.

По умолчанию текст прокручивается автоматически, поскольку текст добавляется к документу при условии, что код выполняется в EDT. Этой прокруткой можно управлять в примере, представленном по ссылке выше.

Edit:

но я все еще хотел бы библиотечное решение

Я не знаю ни одного

текст автоцвета, поступающий из разные потоки

Консоль сообщений может дать вам несколько идей.

(то есть обнаружить префикс [error] на линия) и цветные линии на основе это)

Это легко сделать, добавив DocumentFilter к документу текстовой панели. Вы можете добавить атрибуты, когда текст вставлен в документ.

3 голосов
/ 25 февраля 2010

Убедитесь, что вы читаете о ветке диспетчеризации событий (EDT) на свинге !

Кстати: простой поиск 'java swing console' даст вам много советов ИЛИ вамможет использовать / адаптировать текстовое поле beanshell , что тоже является jtextfield ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...