Java - Error ArrayIndexOutOfBoundsException JFILECHOOSER

 
Vista:

Error ArrayIndexOutOfBoundsException JFILECHOOSER

Publicado por Isaac (1 intervención) el 03/11/2019 07:57:45
Hola que tal a todos, tengo un error soy nuevo en esto pero quise experimentar creando una aplicación sencilla (o eso creí), la cosa esta en que use un array para recolectar todos los archivos obtenidos por un JFileChooser, ahora cuando trato de seleccionar dos, estos funcionan de maravilla, son archivos de audio, pero cuando selecciono solo uno la consola me tirar el error "ArrayIndexOutOfBoundsException", entiendo que es que estoy llamando a un archivo que no se encuentra, la cosa es que quiero poder seleccionar de uno a dos archivos máximo sin que ocurra este problema, les dejo mi codigo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package pruebaaudiowav;
 
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
 
import sun.audio.*;
import java.io.*;
import java.util.ArrayList;
import javax.swing.filechooser.FileNameExtensionFilter;
 
public class PRUEBA2 {
 
    public static void main(String[] args) throws FileNotFoundException, IOException {
        //archivos de entrada inicializando vacios
 
        FileInputStream direccion = null;
        FileInputStream direccion2 = null;
 
        //creo el buscador
        JFileChooser buscador = new JFileChooser();
        FileNameExtensionFilter filtro = new FileNameExtensionFilter("WAV FILES", "wav");
        buscador.setFileFilter(filtro);
        buscador.setMultiSelectionEnabled(true);
        buscador.setDialogTitle("Importar archivos");
        if (buscador.showOpenDialog(buscador) == JFileChooser.APPROVE_OPTION) {
 
            File[] file = buscador.getSelectedFiles();
 
            direccion = new FileInputStream(file[0].getAbsolutePath());
            direccion2 = new FileInputStream(file[1].getAbsolutePath());
 
            //iniciando audios
            AudioStream audio = new AudioStream(direccion);
            AudioStream audio2 = new AudioStream(direccion2);
 
            //reproduciendo audios
            AudioPlayer.player.start(audio);
            AudioPlayer.player.start(audio2);
 
            JOptionPane.showMessageDialog(null, "Reproduciendo");
        } else {
            JOptionPane.showMessageDialog(null, "Ningun archivo WAV fue seleccionado");
        }
 
    }
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Error ArrayIndexOutOfBoundsException JFILECHOOSER

Publicado por Renzo (232 intervenciones) el 03/11/2019 19:43:44
Hola
si lo ejecutas seleccionando solo un archivo, esta línea dará error:

1
direccion2 = new FileInputStream(file[1].getAbsolutePath());

porque el arreglo file solo tiene un elemento y no existe la posición file[1].

Te recomiendo que antes de obtener las direcciones, verifique el contenido del arreglo con la sentencia length.

Saludos

Renzo

http://www.imagineanddo.com/search/label/java
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar