Я ищу высокоэффективный компонент Java Swing, который я могу просто включить свое приложение UI. Я уже попытался использовать классы в Swing, такие как JTextArea без пользы; они просто не достаточно высокоэффективны и имеют любые недостатки нанесения вреда. Кроме того, было бы хорошо, если бы это имело стандартные консольные функции, такие как блокировка прокрутки, ясная консоль, цвета, и так далее.
Править: Забыл говорить, эта консоль будет иметь большую потоковую передачу отладочной информации в него, и это должно быть полностью с возможностью прокрутки.
Удачи,
Chris
Я не понимаю, что не так с использованием JTextPane. Он поддерживает атрибуты, которые вы можете указать при добавлении каждого фрагмента текста в консоль. Очистить его тоже, очевидно, нетрудно. При добавлении на панель прокрутки он также поддерживает прокрутку.
Вы можете добавить блокировку прокрутки с помощью Smart Scrolling .
Кроме того, он удаляет текст слишком рано и
Понятия не имею, что это означает, поскольку текст никогда не удаляется, если вы специально не удалите его из документа.
не позволяет пользователю прокручивать, пока вводится (afaik). Эффект заключается в том, что вы видите только мигающий текст , в то время как количество строк остается неизменным.
По умолчанию текст прокручивается автоматически по мере добавления текста к документу, если код выполняется на EDT. Этой прокруткой можно управлять в примере, приведенном по ссылке выше.
Правка:
, но мне все равно хотелось бы получить библиотечное решение
Я не знаю ни одного
текста с автоматической раскраской, поступающего из разных потоков
Консоль сообщений может дать вам несколько идей.
(т.е. обнаружение префикса [error] в строке ) и раскрашивание строк на основе this)
Это легко сделать, добавив DocumentFilter в документ текстовой панели .Вы можете добавлять атрибуты по мере того, как текст вставляется в документ.
Убедитесь, что вы читали о потоке диспетчеризации событий (EDT) в процессе !
Кстати: простой поиск "java swing console" даст вам много подсказок ИЛИ вы можете использовать / адаптировать текстовое поле beanshell , которое тоже является jtextfield ...
{{1} }