2010-01-05 19 views
10

No encuentro una manera fácil de desactivar el ajuste de palabras en un JTextPane. No puedo usar JTextArea porque necesito diferentes colores para diferentes textos. Tengo estas grandes líneas feas que se ponen feas con el ajuste de palabras activado.Deshabilitar el ajuste de Word en JTextPane

JTextArea tiene un método setLineWrap(), pero no puedo encontrarlo para JTextPane. ¿Por qué?

Respuesta

8

Bien, encontré una solución fácil. Coloque el JTextPane en el centro de un JPanel con un diseño de Borde. Luego, ponga el JPanel en un JScrollPane.

Así, la jerarquía se ve así:

  • JScrollPane
  • JPanel (w/Border Layout)
  • JTextPane

JScrollPane contiene todo por debajo de ella y la JTextPane está dentro de todo por encima de eso.

No estoy seguro de por qué funciona, pero lo hace.

+3

Creo que la razón de esto funciona es porque cuando el panel de texto está en un panel con BorderLayout (como centro) que está en un ScrollPane, su tamaño preferido crece a lo que requiera el contenido (es decir, borderlayout le da tanto espacio como quiere y dado que está en un panel de desplazamiento puede crecer tanto como lo desee. Cuando estaba directamente en un panel o marco, su tamaño estaba restringido por el tamaño del panel/marco. Una vez que el texto era> longitud disponible, el JTextPane comenzó a ajustar las palabras para que quepan en el espacio disponible (que se corrigió). –

+0

¡Bien dicho! (Tengo que poner más palabras o SO no me deja publicar este comentario) – User1

Cuestiones relacionadas