Хранение данных в многомерном массиве - PullRequest
0 голосов
/ 18 марта 2019

Я сохраняю эти данные в матрице 10x5, но когда я попадаю на позицию 4 первой строки, у меня появляется эта ошибка " Исключение в потоке" AWT-EventQueue-0 "java.lang.ArrayIndexOutOfBoundsException: 5 ». Я думаю, что ошибка в listPatients [0] [counter] , но я не знаю, что делать.

public class PatientForm extends javax.swing.JFrame {

       Patient[][] patientList;

        int counter;

    public PatientForm() {
        initComponents();

        patientList = new Patient[10][5];

        counter = 0;
    }


  private void btnasignarActionPerformed(java.awt.event.ActionEvent evt) {                                           
            if (counter < listPatients.length) {
            String identification = txtidentification.getText();
            String name= txtname.getText();
            String lastName = txtlastName.getText();
            String eps = txteps.getText();
            boolean type = jrbtipo1.isSelected();
            String diagnosis = txtdiagnostico.getText();

                Patient objPatient = new Patient(identification, name, lastName, eps, type, diagnosis);


                listPatients[0][counter] = objPatient;
                counter++;

                JOptionPane.showMessageDialog(this, "Head" + counter + " Patients.");
            }else {
                JOptionPane.showMessageDialog(this, "Error", "Error", JOptionPane.ERROR_MESSAGE);
            }
        }
}

1 Ответ

1 голос
/ 18 марта 2019
Матрица

A 10x5 означает, что вы можете использовать индексы массива из [0-9] [0-4]. Вот почему вы получаете исключение IndexOutOfBound. Вы пытаетесь получить доступ к listPatients[0][5]. Второе значение индекса - 5, что недоступно. Последний индекс любой строки этого массива: listPatients[0-9][4].

Проверьте значение счетчика, потому что оно равно 5. Исправьте это значение или проверьте его, прежде чем получить доступ к любому индексу этого массива.

...