Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] JScrollPane y JTextArea

Estas en el tema de JScrollPane y JTextArea en el foro de Java en Foros del Web. Buenas tardes. Estoy intentando hacer que un JTextArea tenga un JScrollPane vertical para que cuando el texto que hay dentro no se vea, puedas mover ...
  #1 (permalink)  
Antiguo 20/05/2013, 04:41
 
Fecha de Ingreso: julio-2012
Ubicación: Madrid
Mensajes: 95
Antigüedad: 12 años, 3 meses
Puntos: 2
JScrollPane y JTextArea

Buenas tardes.

Estoy intentando hacer que un JTextArea tenga un JScrollPane vertical para que cuando el texto que hay dentro no se vea, puedas mover el scroll y moverte arriba y abajo.

Este es el código que tengo:

Código:
JTextArea textArea = new JTextArea();
textArea.setPreferredSize(new Dimension(870, 65));
	
JScrollPane scrollPane = new JScrollPane(textArea);
scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
scrollPane.setPreferredSize(new Dimension(870, 65));
panel.add(scrollPane);
Pero lo único que consigo es que el scroll esté visible pero sin hacer su función.

He usado casi el mismo código que viene en el DOC de Oracle:
http://docs.oracle.com/javase/tutori.../textarea.html
Pero no funciona.

¿Alguna idea de dónde puede estar el fallo?
  #2 (permalink)  
Antiguo 20/05/2013, 18:31
 
Fecha de Ingreso: julio-2012
Mensajes: 39
Antigüedad: 12 años, 4 meses
Puntos: 2
Respuesta: JScrollPane y JTextArea

falta agregarle el JTextArea dentro del JScrollPane
ejemplo: scrollpane.setViewPort(textArea);
  #3 (permalink)  
Antiguo 21/05/2013, 02:45
 
Fecha de Ingreso: julio-2012
Ubicación: Madrid
Mensajes: 95
Antigüedad: 12 años, 3 meses
Puntos: 2
Respuesta: JScrollPane y JTextArea

Cita:
Iniciado por cyborgve Ver Mensaje
falta agregarle el JTextArea dentro del JScrollPane
ejemplo: scrollpane.setViewPort(textArea);
He intentado lo que me has dicho pero me salta el siguiente error:

The method setViewPort(JTextArea) is undefined for the type JScrollPane
  #4 (permalink)  
Antiguo 21/05/2013, 11:05
Avatar de farfamorA  
Fecha de Ingreso: noviembre-2010
Ubicación: Lima
Mensajes: 136
Antigüedad: 14 años
Puntos: 24
Respuesta: JScrollPane y JTextArea

Cita:
Iniciado por jonasgv Ver Mensaje
He intentado lo que me has dicho pero me salta el siguiente error:

The method setViewPort(JTextArea) is undefined for the type JScrollPane
El método en cuestión es setViewportView de JScrollPane.
Salu2.
  #5 (permalink)  
Antiguo 22/05/2013, 01:59
 
Fecha de Ingreso: julio-2012
Ubicación: Madrid
Mensajes: 95
Antigüedad: 12 años, 3 meses
Puntos: 2
Respuesta: JScrollPane y JTextArea

Nada de nada. Consigo que aparezcan las barras pero no se "habilitan" cuando hay mas texto del que se puede ver.

He probado estas dos formas:

Código:
JTextArea textArea = new JTextArea();
textArea.setPreferredSize(new Dimension(870, 65));
	
JScrollPane scrollPane = new JScrollPane(textArea);
		
scrollPane.setPreferredSize(new Dimension(870, 65));
scrollPane.setViewportView(textArea);
panel.add(scrollPane);
Código:
JTextArea textArea = new JTextArea();
textArea.setPreferredSize(new Dimension(870, 65));
	
JScrollPane scrollPane = new JScrollPane(textArea);
scrollPane.setViewportView(textArea);
panel.add(scrollPane);
He estado mirando en distintos sitios y nada de nada, no consigo que me salga esta "tontería"
  #6 (permalink)  
Antiguo 22/05/2013, 09:13
 
Fecha de Ingreso: julio-2012
Ubicación: Madrid
Mensajes: 95
Antigüedad: 12 años, 3 meses
Puntos: 2
Respuesta: JScrollPane y JTextArea

Buenas tardes.

¡Ya he encontrado dónde estaba el problema y la solución!

Lo que ocurre que es que estoy usando un AbsoluteLayout para meter tanto el JTextArea como el JScrollPane y al ser un AbsoluteLayout, hay que hacerlo de otra forma porque si no no funciona.

La solución es la siguiente:

Código:
panel.setLayout(null); // AbsoluteLayout

textArea = new JTextArea();
JScrollPane scrollPane = new JScrollPane(textArea); 
scrollPane.setBounds(10, 20, 850, 50);
panel.add(scrollPane);

Etiquetas: html, jscrollpane, jtextarea
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:02.