Problema pasando datos de lista a JLIST

Iniciado por Derkot, 19 Enero 2010, 13:07 PM

0 Miembros y 1 Visitante están viendo este tema.

Derkot

Hola tengo una pequeña duda que no consigo resolver...
Tengo que hacer una aplicacion de escritorio y hay una cosita que no me sale.
Tengo un metodo que inserta en una lista el resultado de una consulta:

public List<Carpeta> RecuperarTodo()
   {
       Connection con = null;
       PreparedStatement Consulta = null;
       List<Carpeta> Lista = new ArrayList<Carpeta>();

       try
       {
           con = DriverManager.getConnection("jdbc:derby:MyTestDb;create=true");

           Consulta = con.prepareStatement("SELECT * FROM Carpetas");
           ResultSet rs = Consulta.executeQuery();

           while(rs.next())
           {
               this.IdCarpeta = rs.getString("IdCarpeta");
               this.Nombre = rs.getString("Nombre");

               Lista.add(new Carpeta(this.IdCarpeta, this.Nombre));

           }
           
       }
       catch(SQLException e)
       {
           System.out.println("Error: " + e.getMessage());
       }

       return Lista;
   }


Ahora quiero pasar esos datos que hay en la lista a un JLIST para poder posteriormente visualizarlos en pantalla...pero no se como hacerlo.
Alguna idea??

public class Menu extends javax.swing.JFrame {


   public Menu() {
       initComponents();
   }                

   public void InicializarListas()
   {
       List<Carpeta> Lista = new ArrayList();
       Lista = new Carpeta().RecuperarTodo();
       
       //Aqui iria el codigo que pasa los datos de una lista a otra

   }

   public static void main(String args[]) {
       java.awt.EventQueue.invokeLater(new Runnable() {
           public void run() {
               new Menu().setVisible(true);
               new Menu().InicializarListas();
           }
       });
   }            

}


GRACIAS DE ANTEMANO  ;)

Leyer

si no te da errores en la consulta asi de deberia guardar los elementos en el Jlist

Código (java) [Seleccionar]
public void InicializarListas()
    {
        List<Carpeta> Lista = new ArrayList();
        Lista = new Carpeta().RecuperarTodo();
Iterator<Object> i = lista.iterator();
DefaultListModel listModel = new DefaultListModel();
JList jList = new JList(listModel);
JScrollPane scrollPane = new JScrollPane(jList);
while(i.hasNext()){
listModel.addElement(i.next());
}
getContentPane().add(scrollPane);

    }


Saludos y suerte.

Derkot

Gracias por molestarte en responder...pero ahora una cosa...como se yo que si estan metidos en el Jlist?? Como visualizo ahora el jList???
GRACIAS

panaka

Para introducir en el Jlist como te han indicado es mediante un model, tu añades los elementos al modelo y luego vinculas en modelo a tu Jlist:

Un ejemplo sencillo seria:

/Creamos el modelo
DefaultListModel listModel = new DefaultListModel();
//Creamos el componente con el modelo
JList list = new JList(listModel);
//Posteriormente podemos añadir elementos
listModel.addElement("Elemento1");
listModel.addElement("Elemento2");
//...obtener el elemento de una posición
String elemento = (String) listModel.get(0);
//...o eliminar un elemento
listModel.remove(0);


Si quieres saber que elementos tienes en el JList mira la API y tendras algun metodo que te devuelva un array con los componentes.

Saludos



Chuck Norris es tan friki tan friki que ve la televisión en el osciloscopio

danieledug

Hola yo tengo un problema distinto pero para no abrir otro post lo comento por aca a ver si me pueden ayudar, tengo un jlist el cual lo uso para mostrar todos mis cliente a me dida que hago clic en los mismos me muestra los datos mas abajo en distintos jtextfield, esto funcina barbaro, el tema es que quiero buscar un cliente en particuar, lo que yo hago es crear un nuevo defaultlistmodel agregar los elementos que me coniciden con el nombre que estoy buscando y luego la jlist le seteo el nuevo defaultlistmodel en principio funciona pero a continuacion me da un monton de errores:

at clientesrevigom.actionPerformed(clientesrevigom.java:1231)
   at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
   at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
   at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
   at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
   at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
   at java.awt.Component.processMouseEvent(Unknown Source)
   at javax.swing.JComponent.processMouseEvent(Unknown Source)
   at java.awt.Component.processEvent(Unknown Source)
   at java.awt.Container.processEvent(Unknown Source)
   at java.awt.Component.dispatchEventImpl(Unknown Source)
   at java.awt.Container.dispatchEventImpl(Unknown Source)
   at java.awt.Component.dispatchEvent(Unknown Source)
   at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
   at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
   at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
   at java.awt.Container.dispatchEventImpl(Unknown Source)
   at java.awt.Window.dispatchEventImpl(Unknown Source)
   at java.awt.Component.dispatchEvent(Unknown Source)
   at java.awt.EventQueue.dispatchEvent(Unknown Source)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.run(Unknown Source)


aca les paso algo del codigo de lo q estoy haciendo:

model=new DefaultListModel();   
         
            
         numeros =  (String)JOptionPane.showInputDialog(this, "Ingrese Nombre del Cliente", "Busqueda", JOptionPane.QUESTION_MESSAGE);
      
         if(!numeros.isEmpty())
            {
                  
               for(int i=0;i<clie.size();i++)
                  {
                     if(clie.get(i).getMinuscula().contains((numeros)))
                        model.addElement(clie.get(i).getNro()+" - "+clie.get(i).getNombre());
            
                  }
            
               lista.setModel(model);//El error me lo da aca y lo que esta a continuacion no lo ejecuta.
               
               int []gg=new int[1];
               gg[0]=0;
               lista.setSelectedIndices(gg);
         
      
            }

Para que se entienda un poco mas numeros es un string donde guardo lo que escribo cuando quiero buscar.
clie es mi arraylist de clientes y el getminuscula tiene el nombre en mayuscula y en minuscula para poder encontrarlo escriba como escriba.
El tema es que cuando realizo la busqueda me encuentra el o los clientes que contienen el string que ingrese pero a continuacion me tira el error, lo cual no me permite hacer nada mas ya que lo que yo quiero es una vez que cargo el jlist quede seleccionado el primero.
asi como explique antes me muestre los datos abajo.

Espero puedas ayudarme y desde ya muchisimas gracias por su tiempo.