2011-01-24 13 views

Respuesta

1
scrollbar = new Scrollbar(Scrollbar.VERTICAL); 
+0

Esto no hace absolutamente nada para resolver el problema, que es sobre el diseño, no la creación de una barra de desplazamiento. El OP ya tiene una barra de desplazamiento, proporcionada por 'JScrollPanel'. – Nateowami

4

El hecho de utilizar un JScrollPane cambios bastante algunas cosas relativas a la FlowLayout interna. de hecho, cuando FlowLayout intenta el diseño que contiene JButtons, usa para eso el espacio disponible. En su caso, no tiene límites para el espacio en el "cliente desplazable" de su JScrollPane. Como consecuencia, teniendo en cuenta que su FlowLayout tiene espacio infinito, utiliza este espacio para mostrar elementos de acuerdo con él.

Así que la solución sería cambiar su cliente desplazable para limitar su área visible al mismo que el JViewport de su JScrollPane.

Sin embargo, incluso en este caso no tendría sus retornos de línea, ya que FlowLayout no maneja bien este caso.

Si yo fuera usted, por supuesto, elegiría otro diseño. Como GridLayout realmente no maneja bien las fronteras, creo que el único diseño estándar razonable que puede usar es GridBagLayout, aunque me temo que sus restricciones de contenido dinámico pueden requerir algo aún más personalizable.

4
JTextArea c = new JTextArea(); 
c.setLineWrap(true); 
c.setWrapStyleWord(false); 

Esto envolver cualquier cosa en un área de texto a la línea siguiente sin crear un desplazamiento horizontal.

Cuestiones relacionadas