2010-02-24 20 views
5

Estoy buscando un componente Swing Java altamente eficiente que pueda simplemente conectar a la interfaz de usuario de mi aplicación. Ya intenté usar las clases dentro de Swing como JTextArea sin ningún resultado; simplemente no son de alto rendimiento y tienen inconvenientes paralizantes. Además, sería bueno si tuviera características de consola estándar como scroll-lock, clear console, colores, etc.Buscando una consola eficiente basada en Java Swing

Editar: Olvidé decirlo, esta consola tendrá mucha información de depuración entrando en ella, y necesita ser completamente desplazable.

Saludos,
Chris

+0

¿Cuáles son los inconvenientes paralizantes/problemas de desempeño' re experimentar? – Adamski

+0

Problemas de velocidad, principalmente. El componente JTextArea no parece estar diseñado para aceptar cantidades tan grandes de texto tan rápido, por lo que se ralentiza. Además, elimina el texto demasiado pronto y no permite que el usuario se desplace mientras se ingresa la entrada (afaik). El efecto es que solo ve el texto parpadeando mientras el número de filas permanece igual. –

+0

Creo que debería reemplazar la palabra "eficiente" con las características que realmente quiere lo suficiente. –

Respuesta

6

que no pueden ver lo que está mal con el uso de un JTextPane. Admite atributos que puede especificar a medida que se agrega cada fragmento de texto a la consola. Limpiarlo también es obviamente obvio. Cuando se agrega a un panel de desplazamiento, también admite el desplazamiento.

Puede agregar el bloqueo de desplazamiento usando Smart Scrolling.

Además, se elimina el texto demasiado pronto y

Ni idea de lo que eso significa que el texto no se elimina a menos que quite específicamente a partir del documento.

no permite que el usuario se desplace mientras se ingresa la entrada (afaik). El efecto es que simplemente ve el texto parpadeando, mientras que el número de filas permanece igual.

De forma predeterminada, el texto se desplaza automáticamente a medida que se agrega texto al documento suponiendo que el código se ejecuta en el EDT. Este desplazamiento se puede controlar el ejemplo proporcionado en el enlace de arriba.

Editar:

pero todavía me gustaría una solución biblioteca

No sé de cualquier

texto automático colourise procedentes de diferentes corrientes

The Message Console podría darte algunas ideas.

(es decir, detectar [error] prefijo en una línea ) y las líneas Colourise basado en este)

Esto se hace fácilmente mediante la adición de un DocumentFilter al Documento del panel de texto. Puede agregar atributos a medida que el texto se inserta en el documento.

+0

Me las arreglé para resolver el problema, resultó que estaba usando una clase en mi paquete de prueba que no causó que ninguno de los cambios que estaba haciendo tuviese un efecto, haciéndome pensar que JTextArea simplemente apestaba :) Entonces, ahora tengo una Consola de trabajo rápida, pero aún me gustaría una solución de biblioteca con botones geniales alrededor de la ventana de la consola para hacer cosas diferentes y colorear automáticamente texto proveniente de diferentes flujos (con códecs para indicar errores (es decir, detectar el prefijo [error] en una línea)) y líneas de color basadas en esto) - ¿existe tal cosa? :) –

+0

Parece que el enlace de arriba, etiquetado "publicación" está roto. – JeffHeaton

+0

@JeffHeaton, gracias, cambié la respuesta un poco para referirme a un nuevo tema. – camickr