Wie vergebe Ich den Jframe Title den Namen aus einem Element von der Arraylist ?

GreenTeaYT

Mitglied
Hey Leute,
Ich probiere schon seit 4 Tagen meine JFrame title den namen von einem Arraylist zu geben.
Dieser Befehl gibt mir einen Nullpointer, was ich auch nich verstehen weil mein Programm die Arraylist am Anfang initialisiert. Mir stellt sich noch die frage?
Privatkunde und Firmenkunde haben die Attribute Name, diese Klassen erben nur von Kunde. Ich hab bei vielen Post gelesen das sie sofort auf die Attribute zugreifen ohne jegliche Vererbung deswegen hab ich kein passende erklärung oder Lösungsvorsatz bekommen.
Java:
setTitle( bank.getKundeList() );
Hier wir die Arraylist initialisiert und das Programm startet auch an dieser stelle.
Java:
public class Menue {
private Bank bank = new Bank();
private Konto konto = new Konto();
private Kunde kunde = new Kunde();

public void auswahlMenue() throws TransaktionIOException {

        initialisierungVonObjekten();

        String auswahl;
        do {
            menuePunkte();

            auswahl = MeineEingabe.erfasseAuswahl("Auswahl: ");
            Transaktionsart art = Transaktionsart.getEnumByID(auswahl);
            switch (art) {
            case LIESPRIVATKUNDE:
                liesPrivatkunde();
                break;
            case LIESFIRMENKUNDE:
                liesFirmenkunde();
                break;
            case LIESKONTOUNDKDNR:
                liesKontoUndKdnr();
                break;
            case KUNDEMITKONTOANZEIGENDURCHKDNR:
                kundeMitKontoAnzeigenDurchKdnr();
                break;
            case KUNDEMITKONTOANZEIGENDURCHNAME:
                kundeMitKontoAnzeigenDurchName();
                break;
            case KONTOANZEIGENDURCHIBAN:
                kontoAnzeigenDurchIBAN();
                break;
            case KUNDENUNSORTIERTANZEIGEN:
                kundenUnsortiertAnzeigen();
                break;
            case KUNDENSORTIERTANZEIGENNACHAUFSTEIGENDERKDNR:
                kundenSortiertAnzeigenNachAufsteigenderKdnr();
                break;
            case ALLEKONTENUNSORTIERTANZEIGEN:
                alleKontenUnsortiertAnzeigen();
                break;
            case EINZAHLUNG:
                geldEinzahlen();
                break;
            case AUSZAHLUNG:
                geldAbheben();
                break;
            case TRANSAKTIONSLISTEABSTEIGENDSORTIERTANZEIGEN:
                transaktionslisteAbsteigendSortiertAnzeigen();
                break;
            case TRANSAKTIONSLISTEAUFSTEIGENDSORTIERTSPEICHERN:
                transaktionslisteAufsteigendSortiertSpeichern();
                break;
            case TRANSAKTIONSLISTEEINLESEN:
                transaktionslisteEinlesen();
                break;
            case GUIOEFFNEN:
                guiOeffnen();
                break;
            case BEENDEN:
                System.out.println("Das Programm wurde Beendet!!");
                break;
            default:
                break;

            }

        } while (!auswahl.equals("16"));
}
public void initialisierungVonObjekten() {
        Privatkunde kunde0 = new Privatkunde("Max", "Mustermann", "017632447658", "musterman@max.de", "08.03.1993",
                new Adresse("Maxstraße", "22", "12139", "Berlin"), "1");
        bank.addKunde(kunde0);
        Konto konto0 = new Konto("DE21 0010 0100 8234 6425 50", 100.00, "1");
        bank.addKonto(konto0);
        konto.addTransaktion(new Transaktion("DE21 0010 0100 8234 6425 50", LocalDateTime.now().withNano(0),
                "Auszahlung", "Aldi", 20.50));
        konto.addTransaktion(new Transaktion("DE21 0010 0100 8234 6425 50", LocalDateTime.now().withNano(0),
                "Auszahlung", "Edeka", 45.99));
        konto.addTransaktion(new Transaktion("DE21 0010 0100 8234 6425 50", LocalDateTime.now().withNano(0),
                "Auszahlung", "Media Markt", 50.00));
        konto.addTransaktion(new Transaktion("DE21 0010 0100 8234 6425 50", LocalDateTime.now().withNano(0),
                "Auszahlung", "Saturn", 67.86));
        konto.addTransaktion(new Transaktion("DE21 0010 0100 8234 6425 50", LocalDateTime.now().withNano(0),
                "Einzahlung", "Amazon", 100.20));

        Kunde kunde1 = new Privatkunde("Ragnar", "Lothbrok", "017634456657", "Lothbrok@ragnar.de", "15.07.1979",
                new Adresse("Ragnarstraße", "22", "12159", "Berlin"), "2");
        bank.addKunde(kunde1);
        Konto konto1 = new Konto("DE21 0010 0100 8234 6426 50", 200.00, "2");
        bank.addKonto(konto1);
        konto.addTransaktion(new Transaktion("DE21 0010 0100 8234 6426 50", LocalDateTime.now().withNano(0),
                "Auszahlung", "Aldi", 30.00));
        konto.addTransaktion(new Transaktion("DE21 0010 0100 8234 6426 50", LocalDateTime.now().withNano(0),
                "Auszahlung", "Edeka", 45.55));
        konto.addTransaktion(new Transaktion("DE21 0010 0100 8234 6426 50", LocalDateTime.now().withNano(0),
                "Auszahlung", "Media Markt", 67.89));
        konto.addTransaktion(new Transaktion("DE21 0010 0100 8234 6426 50", LocalDateTime.now().withNano(0),
                "Auszahlung", "Saturn", 99.99));
        konto.addTransaktion(new Transaktion("DE21 0010 0100 8234 6426 50", LocalDateTime.now().withNano(0),
                "Einzahlung", "Amazon", 66.60));

        Kunde kunde2 = (new Privatkunde("Peter", "Lustig", "017632556698", "lustig@peter.de", "18.04.1985",
                new Adresse("Peterstraße", "22", "12129", "Hamburg"), "3"));
        bank.addKunde(kunde2);
        Konto konto2 = new Konto("DE21 0010 0100 8234 6426 00", 250.00, "3");
        kunde.addKonto(konto2);
        konto.addTransaktion(new Transaktion("DE21 0010 0100 8234 6426 00", LocalDateTime.now().withNano(0),
                "Auszahlung", "Aldi", 66.96));
        konto.addTransaktion(new Transaktion("DE21 0010 0100 8234 6426 00", LocalDateTime.now().withNano(0),
                "Auszahlung", "Edeka", 120.55));
        konto.addTransaktion(new Transaktion("DE21 0010 0100 8234 6426 00", LocalDateTime.now().withNano(0),
                "Auszahlung", "Media Markt", 60.00));
        konto.addTransaktion(new Transaktion("DE21 0010 0100 8234 6426 00", LocalDateTime.now().withNano(0),
                "Auszahlung", "Saturn", 59.99));
        konto.addTransaktion(new Transaktion("DE21 0010 0100 8234 6426 00", LocalDateTime.now().withNano(0),
                "Einzahlung", "Amazon", 568.77));
        kunde2.addKonto(konto2);
   

    }
    public void guiOeffnen() throws TransaktionIOException{
        if (!bank.getKundeList().isEmpty()) {
            TransaktionFrame fenster = new TransaktionFrame(konto);
        } else if (bank.getKundeList().isEmpty()) {
            System.out.println("Es existieren keine Kunden in der Software, deswegen startet die GUI nicht.");
            try {
                auswahlMenue();
            } catch (TransaktionIOException e) {
                e.printStackTrace();
            }
        }
        auswahlMenue();
    }
  
}
Ich hoffe ihr habt eine Idee wie ich das Problem Lösen kann. Ich bedanke mich im Voraus.
Mit freundlichen Grüßen
Green
 
Zuletzt bearbeitet von einem Moderator:
Wo steht denn diese Zeile, welche die Exception verursacht? In der Klasse "TransaktionFrame"? Übergibst du irgendwo dein Objekt der Klasse Bank oder initialisierst es in der TransaktionFrame Klasse?
Wenn nein dann wird es nie initialisiert und ist somit null.

Nur weil du in der Klasse Menue ein Attribut mit dem Namen "bank" initialisierst heißt das nicht das in anderen Klassen Attribute mit diesem Namen ebenfalls initialisiert sind 😉
 
Wer soll was woraus nehmen?
Ich sehe nirgends, wo du eine JFrame Instanz erzeugst und dabei die Kundenliste von einer Bank verwendest oder übergibst.
Der einzige Teil, wo es um die Erzeugung eines JFrames gehen KÖNNTE ist
Java:
TransaktionFrame fenster = new TransaktionFrame(konto);
und auch dort übergibst du keine Bank, sondern ein Konto.
 

Neue Themen


Zurück
Oben