Metoda .add nadpsisuje pierwsza pozycję ArrayListy

0

A więc tak wygląda GUI:

user image

Chyba nie muszę nic tłumaczyć na tym etapie. Tak wygląda metoda obsługująca ten przycisk:

 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        
        String imie = txtNoweImie.getText();
        String nazwisko = txtNoweNazwisko.getText();
        
        ListaMetody lista = new ListaMetody();
        lista.zapis( imie + " " + nazwisko);
        lista.odczyt(0);
        lista.rozmiar();
        JOptionPane.showMessageDialog(null, lista.ilosc);
    }                                        

Tak wygląda klasa ListaMetody:

import java.util.ArrayList;
import java.util.List;

public class ListaMetody {
    
   ArrayList listaKont = new ArrayList();
   String zxc;
   int ilosc;
   
   void zapis(String y){
       
       listaKont.add(y);
       
   }
   
   void odczyt(int x){
       
       zxc = (String)listaKont.get(x);
       
   }
    
   void rozmiar(){
       
       ilosc = listaKont.size();
       
   }
   
}

Gdy wypełniam Imie oraz Nazwisko i klikam button, za każdym razem wyskakuje okienko z tekstem "1" (rozmiar listy).
Wychodzi więc na to, że metoda "zapis" nadpisuje pierwszą (zerową) pozycję ArrayListy.
Jak mam to naprawić?

PS. Nie wiem dlaczego nie wyświetla się obrazek, w podglądzie posta wyświetlał się.

2

Bzdura. Za każdym kliknieciem w button tworzysz NOWĄ listę, stąd tez zawsze ma rozmiar 1. A ten kod to jest jakaś tragedia. Wiesz że można zrobić metode która nie jest void i wtedy nie trzeba cudować z publicznymi polami? ...

0

Faktycznie, przeniosłem tworzenie listy poza metodę przycisku i działa. Nie wiem jak mogłem tego nie zauważyć. Co do kodu to zdaje sobie sprawę, że jest tragiczny - na zajęciach takich rzeczy nie robiliśmy a to jest projekt na zaliczenie. Tak czy inaczej dzięki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1