Предыдущий элемент в arrayList - PullRequest
0 голосов
/ 08 апреля 2019

с помощью кнопки Я пытаюсь показать предыдущий элемент моего массива, но он не показывает ожидаемый результат, он возвращает только первый элемент, данные, которые я хочу отобразить в соответствующих полях в форме

public class AutoForm extends javax.swing.JFrame {

    ArrayList<Car> carsList;

    int counter;

    public AutoForm() {
        initComponents();

        carsList= new ArrayList<Car>();
        counter = 0;

    }

private void BtnSendActionPerformed(java.awt.event.ActionEvent evt) {                                          
        String id = txtId.getText();
        String brand = JcomboBrand.getSelectedItem().toString();
        int doors = Integer.parseInt(SpinnerDoors.getValue().toString());

        Car objCar = new Car();

        objCar.setId(id);
        objCar.setBrand(brand);
        objCar.setDoors(doors);

        carsList.add(objCar);
        counter++;
        JOptionPane.showMessageDialog(this, "The car was added" + counter);



    }    
private void BtnPreviousActionPerformed(java.awt.event.ActionEvent evt) {                                            

        for (int i = 0; i <= carsList.size(); i++) {
            Car carTemp = carsList.get(i);
            if (counter > 0) {

                counter--;

                txtId.setText(carTemp.getId());
                JcomboBrand.setSelectedItem(carTemp.getBrand());
                SpinnerDoors.setValue(carTemp.getDoors());


            } else {
                JOptionPane.showMessageDialog(this, "There are no records");
            }
            break;
        }
    }
}

Ответы [ 2 ]

1 голос
/ 08 апреля 2019

Попробуйте следующее

private void BtnPreviousActionPerformed(ActionEvent evt) {        
    if (counter > 0) {
        counter--;
        Car carTemp = carsList.get(counter);

        txtId.setText(carTemp.getId());
        JcomboBrand.setSelectedItem(carTemp.getBrand());
        SpinnerDoors.setValue(carTemp.getDoors());
    } else {
        JOptionPane.showMessageDialog(this, "There are no records");
    }
}
0 голосов
/ 08 апреля 2019
break; 

Оператор break приводит к завершению цикла после первой итерации.Вы хотели поместить его в блок if-else?

...