ArrayList wird doppelt ausgegeben

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • ArrayList wird doppelt ausgegeben

    Hey Leute,
    bin noch neu und habe folgendes Problem:
    Mein Lehrer hat mir zur Übung fürs mündliche Abi ein Projekt zur Übung gegeben welche ich von einem Projekt mit objektorientierter Datenbank zu einem Projekt mit ArrayList umschreiben soll. Schön und gut, habe mich daran versucht und bissle herumexperimentiert, da wir das Thema schon vor nem halben Jahr hatten und deswegen ich mich auch wieder reintasten musste und hab es am Ende endlich geschafft das alles genauso ausgegeben wird, wie es im alten Projekt war. Nun gut, da dachte ich, ich hätte alles richtig gemacht, bis ich auf das Problem mit meinem Button "Neue Zuordnung"(heißt hier btnLeeren) gestolpert bin, welches meine Spieler plötzlich doppelt in der Combobox anzeigt.
    Ich hoffe mal ihr könnt mir sagen was mein Fehler ist, da ich grade ziemlich auf dem Schlauch stehe und ich meinen Lehrer erst ende der Woche wieder sehe.

    Quellcode

    1. public Hauptfenster()
    2. {
    3. m1 = new Mannschaft();
    4. m2 = new Mannschaft();
    5. aktMannschaft = new Mannschaft();
    6. m1.setBezeichnung("Real Madrid");
    7. m2.setBezeichnung("FC Barcelona");
    8. aktSpieler = new Spieler();
    9. s1 = new Spieler("Messi", "Lionel");
    10. s2 = new Spieler("Ronaldo", "Cristiano");
    11. s3 = new Spieler("Sanchez", "Alexis");
    12. s4 = new Spieler("Casillas", "Iker");
    13. s5 = new Spieler("Özil", "Mesut");
    14. s6 = new Spieler("Iniesta", "Andres");
    15. Spielerliste();
    16. Mannschaftsliste();
    17. btnLeeren.addMouseListener(new MouseAdapter()
    18. {
    19. @Override
    20. public void mouseClicked(MouseEvent e)
    21. {
    22. taAusgabe.removeAll();
    23. Spielerliste();
    24. Mannschaftsliste();
    25. }
    26. });
    27. btnLeeren.setBounds(248, 175, 130, 33);
    28. jContentPane.add(btnLeeren);
    29. private void Spielerliste()
    30. {
    31. String zwischen;
    32. cboSpieler.removeAllItems();
    33. aktMannschaft.setSpielerliste(s1);
    34. aktMannschaft.setSpielerliste(s2);
    35. aktMannschaft.setSpielerliste(s3);
    36. aktMannschaft.setSpielerliste(s4);
    37. aktMannschaft.setSpielerliste(s5);
    38. aktMannschaft.setSpielerliste(s6);
    39. spielerliste = aktMannschaft.getSpielerliste();
    40. for (int i = 0; i < spielerliste.size(); i++)
    41. {
    42. zwischen = spielerliste.get(i).getVorname() + " "
    43. + spielerliste.get(i).getName();
    44. cboSpieler.addItem(zwischen);
    45. }
    46. }
    47. private void Mannschaftsliste()
    48. {
    49. String zwischen;
    50. cboMannschaften.removeAllItems();
    51. aktSpieler.setMannschaftsliste(m1);
    52. aktSpieler.setMannschaftsliste(m2);
    53. mannschaftsliste = aktSpieler.getMannschaftsliste();
    54. for (int i = 0; i < mannschaftsliste.size(); i++)
    55. {
    56. zwischen = mannschaftsliste.get(i).getBezeichnung();
    57. cboMannschaften.addItem(zwischen);
    58. }
    59. }
    60. }
    Alles anzeigen



    Schonmal danke im vorraus für eure Hilfe :)
  • Ja, ich habs in Zeile 16 gemacht, damit die Combobox mit den jeweiligen Objekten aus der ArrayList gefüllt wird und in der Zeile 25, damit ich die Combobox wieder mit den Objekten fülle, da diese mit ner anderen Methode aus der Combobox gelöscht wird.
    Da fällt mir ein, das ich diese Methode vllt hätte oben erwähnen sollte:

    Quellcode

    1. btnZuordnen.addMouseListener(new MouseAdapter()
    2. {
    3. @Override
    4. public void mouseClicked(MouseEvent e)
    5. {
    6. String zwischen;
    7. if(cboSpieler.getItemCount() > 0)
    8. {
    9. zwischen = (String) cboSpieler.getSelectedItem();
    10. cboSpieler.removeItem(cboSpieler.getSelectedItem());
    11. int index = zwischen.indexOf(" ");
    12. aktSpieler1 = new Spieler(null, null);
    13. aktSpieler1.setVorname(zwischen.substring(0, index + 1));
    14. aktSpieler1.setName(zwischen.substring(index + 1,
    15. zwischen.length()));
    16. spielerliste = m1.getSpielerliste();
    17. spielerliste = m2.getSpielerliste();
    18. if(cboMannschaften.getSelectedItem().equals("Real Madrid"))
    19. {
    20. m1.setBezeichnung("Real Madrid");
    21. m1.setSpielerliste(aktSpieler1);
    22. taAusgabe.add(aktSpieler1.getVorname() + " "
    23. + aktSpieler1.getName() + " gehört zu: "
    24. + m1.getBezeichnung());
    25. }
    26. else
    27. {
    28. m2.setBezeichnung("FC Barcelona");
    29. m2.setSpielerliste(aktSpieler);
    30. taAusgabe.add(aktSpieler1.getVorname() + " "
    31. + aktSpieler1.getName() + " gehört zu: "
    32. + m2.getBezeichnung());
    33. }
    34. }
    35. else
    36. {
    37. JOptionPane.showMessageDialog(null,
    38. "Alle Spieler sind verteilt");
    39. }
    40. }
    41. });
    42. btnZuordnen.setBounds(248, 131, 130, 33);
    43. jContentPane.add(btnZuordnen);
    44. btnLeeren.addMouseListener(new MouseAdapter()
    45. {
    46. @Override
    47. public void mouseClicked(MouseEvent e)
    48. {
    49. taAusgabe.removeAll();
    50. // Spielerliste();
    51. // Mannschaftsliste();
    52. }
    53. });
    Alles anzeigen


    Hab mir iwie gedacht, dass ich die Objekte vllt aus der Arraylist erst lösche und dann mit der jeweiligen Methode dann wieder schreibe, aber bin mir nicht so ganz sicher und ich ich kenn auch nicht den Befehl um diese Idee zu testen.


    und @shureg
    was meinst du mit "ausserdem kann ich dir empfehlen man den debugger zu bemühen, das gehört auch zur programmiereung und fehlersuche "?