Foro de elhacker.net

Programación => Java => Mensaje iniciado por: BlackDawn en 29 Noviembre 2010, 05:43 am



Título: Error en declaracion
Publicado por: BlackDawn en 29 Noviembre 2010, 05:43 am
Mmm me podrian decir que estoy haciendo mal?

Código
  1.        String año[] = null;
  2.        JFileChooser fc = new JFileChooser();
  3.        FileNameExtensionFilter filter = new FileNameExtensionFilter("MP3", "mp3");
  4.        fc.setFileFilter(filter);
  5.        fc.setMultiSelectionEnabled(true);
  6.        if (fc.showOpenDialog(fc) == JFileChooser.APPROVE_OPTION) {
  7.            Archivo = fc.getSelectedFiles();
  8.            for (int i = 0; i < Archivo.length; i++) {
  9.                try {
  10.                    lista.add(Archivo[i].getAbsolutePath());
  11.                    String nombre[] = {Archivo[i].getName()};
  12.                    año  = {objetoMusica.obtenerTags(Archivo[i].getAbsolutePath().toString())};
  13.                    modelo.addRow(nombre);                  
  14.                    objetoReproductor.cargarAudio(Archivo[puntero].getAbsolutePath());
  15.                } catch (Exception ex) {
  16.                    Logger.getLogger(Frame.class.getName()).log(Level.SEVERE, null, ex);
  17.                }
  18.            }
  19.            modelo.addColumn("Año", año);
  20.            jButton2.setEnabled(true);
  21.            jButton4.setEnabled(true);
  22.            jButton3.setEnabled(true);
  23.            jButton5.setEnabled(true);
  24.        } else {
  25.            fc.cancelSelection();
  26.        }
  27.    }
  28.  

Cuando le quiero dar los valores a año me marca un error de ";".
Y si declaro la variable año dentro del for no la puedo usar luego.


Título: Re: Error en declaracion
Publicado por: Debci en 29 Noviembre 2010, 09:01 am
Código
  1. año  = {objetoMusica.obtenerTags(Archivo[i].getAbsolutePath().toString())};
Aqui quizás?
No lo veo muy claro, podrias especificarnos la linea que te da el error?

Saludos


Título: Re: Error en declaracion
Publicado por: 1mpuls0 en 29 Noviembre 2010, 09:35 am
Hola

Código
  1. String año[] = null;
null?  :huh: y el tamaño?, nunca le asignas un tamaño.

Código
  1. año  = {objetoMusica.obtenerTags(Archivo[i].getAbsolutePath().toString())};

 "{}":huh:

Te faltaron los corchetes
Código
  1. año[]

Debe ser algo como:

Código
  1. String año[] = new String[5];
Código
  1. año[i] = objetoMusica.obtenerTags(Archivo[i].getAbsolutePath().toString());

Saludos.


Título: Re: Error en declaracion
Publicado por: Casidiablo en 30 Noviembre 2010, 19:05 pm
En estos caso es mejor usar una clase como Vector o ArrayList para almacenar valores. Algo que decía Darhius es que falta especificar el tamaño del arreglo. En tu caso sería algo como:

Código:
String año[] = new String[Archivo.length];

Aún así, los arreglos de este tipo son poco flexibles. Yo de ti usaría una lista:

Código:
List<String> años = new ArrayList<String>();
// luego para añadir valores en el ciclo
años.add(objetoMusica.obtenerTags(Archivo[i].getAbsolutePath()));

Por cierto, getAbsolutePath() retorna un String así que no hay necesidad de usar toString().