Hallo zusammen. Ich bin gerade dabei eine GUI zu erstellen. Nun habe ich in einer ComboxBox einen ActionListener hinzugefügt und möchte in der setText() Methode eine andere Methode ausführen, die sonst immer über die Konsole ausgegeben wurde.
Leider zeigt der mir in Zeile 102 eine Fehlermeldung an: The method setText(String) in the type JTextComponent is not applicable for the arguments (void)
Die Methode "showCatPaymentList() " gibt über die Konsole folgendes aus:
Nun will ich aber, dass das Ergebnis in der GUI, sprich über txt ausgegeben wird.
Wie gebe ich die Methode aus? toString funktioniert leider auch nicht
Du meinst sicher "Wie gebe ich das Ergebnis der Methode aus?".
Entsprechend der Fehlermeldung hat die Methode showCatPaymentList den Rückgabetyp void (nichts).
Entweder gibt es eine andere Methode
[CODE lang="java" title="erforderliche Methode"]double getCatPaymentSum() {
...
}[/CODE]
oder Du musst selbst solch eine Methode schreiben.
Kleiner Hinweis abseits: Versuche bitte Text als Text zu posten und nicht als Screenshot. Weil wenn du Text als Text postest, koennen es auch Leute lesen und dir helfen welche zum Beispiel einen Screenreader einsetzen.
Du musst sie *aendern* damit sie einen String zurueck gibt, dann darin deinen String zusammen bauen und diesen dann retournieren. Du koenntest sie auch ueberschreiben und einen anderen Rueckgabewert angeben, aber das funktioniert nur weil der Rueckgabewert kein Teil der Methoden-Signatur ist in Java, falls du hier wirklich "ueberschreiben" meinst.
Also zum Verstaendnis, deine Methode hat im Moment keinen Reuckgabewert, daher "void", also nichts. Alles was darin passiert, also die Ausgabe auf die Konsole, kann nicht direkt verwendet werden. Du muesstest also wirklich den String welchen du auf die Konsole ausgibst retournieren anstatt diesen auf die Konsole auszugeben.
Danke für die ausführliche Erklärung Robert. Ich werde keine Screenshots mehr reinstellen, hast recht. Ich habe immer versucht void Methoden zu schreiben, daher weiß ich gerade nicht, wie ich meine Rückgabe, also das was in der Konsole ausgegeben wird, in einem String speichern kann. Diese Methode möchte ich nun in String als Rückgabetyp ändern:
Java:
publicvoidshowCatPaymentList(){Collections.sort(catPaymentList,newListSortedByDate());System.out.println("Kategorie: "+this.getName());//zusätzlichdouble sum =0;for(Payment p: catPaymentList){String s =null;if(p instanceofDeposit)
s ="+";if(p instanceofWithdrawal)
s ="-";System.out.println("Datum: "+ p.getDate()+": "+s+p.amount +"€");
sum = sum + p.amount;}//Zusätzliche AusgabeSystem.out.println(this.name +" Summe an Ausgaben: "+ sum +"€\n");}
Du müsstest den Rückgabe Typ der Methode erst einmal ändern. Die Signatur für deine Methode würde dann so aussehen:
Java:
publicStringshowCatPaymentList()
Dann führst du oben einen String erg = ""; ein und speicherst das was du speichern möchtest in diese Variable.
Am Ende kommt dann ein return erg; um den String zurück zu geben.