Jframe i arrayList

Jframe i arrayList
kuba1990
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 7 lat
  • Postów:39
0

chciałbym JOptionPane.showInputDialog(person.toString()); wypisać sobie listę z obiektami klasy person. Niestety pojawia mi się błąd. Jak się to powinno poprawnie napisać?
https://paste.ofcode.org/85GizB9X6GEmp9cc2LNa9h

W0
  • Rejestracja:ponad 12 lat
  • Ostatnio:dzień
  • Postów:3595
1

Szklana kula dzisiaj nie działa, wróżka się rozchorowała, a karty tarota zamokły. Jaki masz błąd? Albo lepiej napisz, co chcesz osiągnąć.

Chcesz zamienić ArrayList do Stringa, czy też wklepane wartości skonwertować do klasy Person i dorzucić do ArrayListy?

TJ
  • Rejestracja:około 9 lat
  • Ostatnio:ponad 5 lat
  • Postów:35
0
Kopiuj
    @Override
    public void actionPerformed(ActionEvent e) {

        //default persons
        Person person1 = new Person("Jan", "Kowalski", 22);
        Person person2 = new Person("Pawel", "Nowak", 22);
        person.add(person1);
        person.add(person2);

//new person from input text field
        if (e.getSource() == buttonStatus) {
            storeName = name.getText();
            storeSurname = surname.getText();
            storeAge = Integer.parseInt(textAge.getText());
            person.add(new Person(name, surname, age));

            JOptionPane.showInputDialog(person.toString());

        }
    }
}
  1. Do poprawy, próbujesz wziąć text z JLabel zamiast JTextField
  2. Po kiego tworzysz nowe zmienne jak ich nie uzywasz? mówie o storeName, storeSurname, storeAge
  3. Jak już tworzysz te zmienne to je przekaż do konstruktora person.add(new Person(storeName, storeSurname, storeAge));
  4. Te * default persons* to wywal gdzie indziej, bo lista się będzie powiększać i powiększać...
  5. w klasie Person wygeneruj toString(), bo zaraz będzie następny błąd :P

a co do błędu

Kopiuj
    private ArrayList<Person> person;

brakuje new ArrayList<>();

edytowany 1x, ostatnio: toJaMichal
kuba1990
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 7 lat
  • Postów:39
0

@toJaMichal dziękuje za pomoc:)

kuba1990
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 7 lat
  • Postów:39
0

Mała aktualizacja. czemu lista jest cały czas pusta, po wpisaniu ich do formularza z ręki?

chodzi mi o wywołanie JOptionPane.showMessageDialog(null, personsList.size()); w klasie checkListPerson

https://paste.ofcode.org/38dDj3y7Y27aQh8zbSkW3BK

edytowany 1x, ostatnio: kuba1990
bogdans
Moderator
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 5 lat
0

W programie są dwie zmienne listy o nazwie personsList. Zapewne do jednej dodajesz, a drugą wyświetlasz.
Pole personsList w klasie Person jest trochę bez sensu - jeśli już jest to powinno być static.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
edytowany 1x, ostatnio: bogdans
kuba1990
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 7 lat
  • Postów:39
0

@bogdans dodałem słówko static jak zasugerowales i teraz działa. Wyjaśnisz mi czemu?

bogdans
Moderator
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 5 lat
0

Jak pole jest static, to jest wspólne dla wszystkich instancji (obiektów typu Person) - istnieje zatem tylko jedna lista osób. Dopóki pole nie było static, to każda instancja (obiekt typu Person) miała własną listę.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.