Como añadir elementos a un JList (Java)

Iniciado por moleroalex, 23 Noviembre 2013, 20:19 PM

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

moleroalex

Hola

Estoy desarrollando un reproductor de mp3 y me ha surgido una pequeña duda. En la ventana principal he añadido un JList (Con su JScrollPanel) y en ese JList quiero que, cuando seleccione un archivo/carpeta, ese elemento se guarde ahí para poder ser utilizado mas adelante, en mi caso, ser reproducido.

Tengo métodos para seleccionar archivos y carpetas con el JFileChooser pero el salto de pasarlo todo eso al JList me esta costando un poco. Alguna idea de como se añadiría?

Adjunto el código para seleccionar un archivo con el JFileChooser por si hay alguna duda:

JFileChooser selectorArchivo = new JFileChooser();
selectorArchivo.setFileSelectionMode(JFileChooser.FILES_ONLY);
javax.swing.filechooser.FileFilter filtro = new FileNameExtensionFilter("",".mp3");
selectorArchivo.setFileFilter(filtro);
selectorArchivo.setFileHidingEnabled(true);
selectorArchivo.showOpenDialog(null);

Gracias por vuestra ayuda!

Mitsu

#1
Código (=java) [Seleccionar]

JFileChooser chooser = new JFileChooser();
javax.swing.filechooser.FileFilter filtro = new FileNameExtensionFilter("",".mp3");
chooser.setFileFilter(filtro);

int returnVal = chooser.showOpenDialog(null);
if(returnVal == JFileChooser.APPROVE_OPTION) {

// crea un modelo de lista
DefaultListModel model = new DefaultListModel();
JList list = new JList(model);
int pos = list.getModel().getSize();
// agrega el mp3 al modelo
model.add(pos, chooser.getSelectedFile());
}


Igual mira Java Media Framework, te simplifica el trabajo mucho, es sencillo de manejar.

moleroalex

Había oído algo sobre el Java Media Framework pero no se realmente que es... Volviendo a mi código, al aplicar lo que me has comentado, la JList sigue vacia... He puesto una ultima linea final en la que la consola reciba eso que deberia guardarse en el JList y al ejecutar y seleccionar una cancion aparace "null"

Adjunto el codigo:

public void actionPerformed(ActionEvent arg0) {

         JFileChooser selectorArchivo = new JFileChooser();
         selectorArchivo.setFileSelectionMode(JFileChooser.FILES_ONLY);
         javax.swing.filechooser.FileFilter filtro = new   FileNameExtensionFilter("",".mp3");

         selectorArchivo.setFileFilter(filtro);
         
         int returnVal = selectorArchivo.showOpenDialog(null);
         if(returnVal == JFileChooser.APPROVE_OPTION)
         {
            DefaultListModel agregarArchivo = new DefaultListModel();
            JList panelCanciones = new JList(agregarArchivo);
            int pos = panelCanciones.getModel().getSize();
            agregarArchivo.add(pos, selectorArchivo.getSelectedFile());
            
            System.out.println(selectorArchivo.getName());
         }