0 votos
por (320 puntos) en Java
Tengo un combobox cuando que me muestra el numero de habitaciones("Habitaciones escritas en un docto Habitaciones.txt") cuando yo elijo por ejemplo HabitacionUno me tiene que salir en una Jlist el Huesped que esta en la habitacion uno este es el codigo que tengo hasta los momentos que me da este error: "java.lang.ArrayIndexOutOfBoundsException: 2"

Para el combobox:

<pre lang='java'>private void CboHabActionPerformed(java.awt.event.ActionEvent evt) {
        try {
            FileReader fr = null;
            BufferedReader br = null;
            String[] Partes;
            String Linea;
            DefaultListModel lm = new DefaultListModel();
            this.JlsHab.setModel(lm);

            /*JlsHab == nombre de Jlist*/
            /*CboHab == nombre del Combobox*/

            String CodActual;
            if (this.CboHab.getSelectedIndex() >= 0 &amp;&amp; this.CboHab.getItemCount() > 1)
        {
    CodActual =   this.cmbCatCod.getItemAt(this.CboHab.getSelectedIndex()).toString();

                fr = new FileReader("Huesped.txt");

                br = new BufferedReader(fr);

                Linea = br.readLine();

                while (Linea != null)
                {
                    Partes = Linea.split(",");

                    if (CodActual.compareTo(Partes[2]) == 0)
                    {
                        lm.addElement(Partes[1]);
                    }
                    Linea = br.readLine();
                }
                fr.close();
            }

        } catch (Exception e) {

            System.out.println("ERROR COmbobox " + e);
        }

Este es el otro metodo:
try {
            FileReader fr = null;
            BufferedReader br = null;
            String[] Partes;
            String Linea;

            this.cmbCatCod = new javax.swing.JComboBox();

            fr = new FileReader("Habitaciones.txt");
            br = new BufferedReader(fr);

            Linea = br.readLine();

            while (Linea != null) {

                Partes = Linea.split(",");
                this.CboHab.addItem(Partes[1]);
                this.cmbCatCod.addItem(Partes[0]);
                Linea = br.readLine();
            }
            fr.close();
        } catch (Exception ex) {
            System.out.println("ERROR " + ex);

        }

    }

5 Respuestas

0 votos
por (8.5k puntos)
Buenas,

El error es esta línea:


if (CodActual.compareTo(Partes[2]) == 0)

Porque al hacer el split de la linea del fichero, no tiene 3 posiciones y el array resultante no tiene tamaño 3, sino que es menor y al hacer Partes[2] te da el OutOfBoundsException


Partes = Linea.split(",");

0 votos
por (320 puntos)
Como hago para resolver el error me sigue saliendo lo mismo si le aplico Parte[Linea.leght()]==0;


0 votos
por (60 puntos)
0ola  tengo un problema estoy haciendo un programa par aun cajero automatico que tenga un limite de 5 retiros diarios o bien de 3500 pesos diarios AYUDA !!!


0 votos
por (1.4k puntos)
@denisstefa,

Para las nuevas preguntas crea un nuevo hilo.

Gracias.


0 votos
por (8.5k puntos)
Buenas,

Parte[Linea.lenght()]==0;

Te da error porque las posiciones de un array van desde la 0 hasta length - 1.

Ejemplo, array tamaño 3:

[0][1][2]


Preguntas relacionadas

Bienvenido a Dudas de Programación, donde puedes hacer preguntas y recibir respuestas sobre los problemas más frecuentes de los lenguajes de programación, frameworks de desarrollo y bases de datos que utilices. Foro de Línea de Código

Categorías

...