Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Java (http://www.forosdelweb.com/f45/)
-   -   Scroll en Jlist (http://www.forosdelweb.com/f45/scroll-jlist-413274/)

pr0 30/07/2006 04:36

Scroll en Jlist
 
Buenas a todos,
por favor necesito ayuda ya estoy desesperado de probar mil ejemplos que he visto en el foro y otras webs.

La cosa es que necesito poner scroll a un Jlist pero de ninguna manera aparece el dichoso scroll. Lo ultimo que he probado es:
Código PHP:

lista = new JList(modelo);
lista .setPreferredSize(new java.awt.Dimension(100,100));
lista .setLocation(new java.awt.Point(3,3));
lista .setSize(new java.awt.Dimension(221,292));
javax.swing.JScrollPane barra = new javax.swing.JScrollPane(lista);
barra.getViewport().add(lista );
this.getContentPane().add(barranull);
.............
abajo añado suficientes valores al JList como para que aparezca el scroll 

Si alguien me puede ayudar por favor se lo agracedería mucho.

Saludos

chuidiang 30/07/2006 07:40

Hola:

Al JList no le pongas tamaño ni posición ni preferredsize ni nada de nada. Ella solita debería encargarse de ello y el JScrollPane de tenerlo en cuenta.

Basta que pongas el JList en el constructor del JScrollpane o bien llamando al metodo setViewportView(lista), pero sólo con uno de llos vale.

Veo además que metes el JScrollPane en una ventana. Depende mucho del Layout de esta ventana el que luego la lista y el JScrollpane alcancen o no el tamaño adecuado y salga la barra de scroll. Si el sitio donde lo estás metiendo es un JFrame o JDialog, no le cambies al Layout (por defecto tiene un BorderLayout) y mételo en el BorderLayout.CENTER asi

lista = new JList(modelo);
javax.swing.JScrollPane barra = new javax.swing.JScrollPane(lista);
this.getContentPane().add(barra, BorderLayout.CENTER);

Se bueno.

GreenEyed 30/07/2006 07:48

Lo primero, algunos ejemplos más, por si no los habias visto:
http://java.sun.com/docs/books/tutor...ents/list.html

Lo segundo, ... //EDIT era lo mismo que ya te ha dicho chuidiang asi que no lo repetiré ;-)

Saludos

pr0 30/07/2006 10:01

muchas gracias por responder amigos pero sigo sin conseguirlo :(
estoy empezando a perder el animo de aprender Java. Os pongo el codigo que tengo ahora:

Código PHP:

if (lista == null) {
    
javax.swing.DefaultListModel modelo = new javax.swing.DefaultListModel();
    
lista  = new JList(modelo);
    
lista.setPreferredSize(new java.awt.Dimension(100,100));
    
lista.setLocation(new java.awt.Point(3,3));
    
lista.setSize(new java.awt.Dimension(221,292));
    
javax.swing.JScrollPane barra = new javax.swing.JScrollPane(lista);
    
barra.setPreferredSize(new java.awt.Dimension(100,100));
    
this.getContentPane().add(barrajava.awt.BorderLayout.CENTER);


Si quito el setPreferredSize, setLocation, setSize de la lista entonces no me aparece en el JFrame, es decir, no se ve la lista.
El JFrame tiene el Layout a null porque sino no puedo acomodar los componentes a mi gusto.

A ver si me podeis echar una manita, muchas gracias a todos.

GreenEyed 31/07/2006 01:10

Apostaría a que el problema es poner el Layout a null, por que si haces eso entonces has de hacer tu a mano cosas que los layouts te hace "de forma natural". La prueba es fácil, ponle un BorderLayout a ver si sale el scroll etc, y entonces verás si es por eso.

S!

JuanJo_dm7 03/06/2009 22:14

Respuesta: Scroll en Jlist
 
tal vz un poco tarde, pero vale la pena....solo debes omitir el setPreferedSize del JList.

danieledug 07/01/2010 17:10

Respuesta: Scroll en Jlist
 
Es muy facil aca te paso el codigo:

obviamente el scroll aparece una vez que hay un cierta cantidad de items en el jlist.

osea cuando ya hay uno que no se veria.

JList lista=new JList();

lista.setFont(new Font("Times-Roman", Font.BOLD, 20)); //Esto te demas pero esta bueno es para definirle el tipo y tamaño del texto.

JScrollPane scroll=new JScrollPane(lista);

luego agregas scroll en el jpanel o donde quieras hacerlo.
Saludos.


La zona horaria es GMT -6. Ahora son las 06:54.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.