Hier nun die Methode die ich nutzen möchte in der selben Klasse (a.result ist die ArrayListe in einer anderen Klasse):
Java:
publicArrayListcomboBoxListeKundenNameDaten(){String test ="";Datenbankanbindung a =newDatenbankanbindung(MYSQL_DRIVER, MYSQL_URL);for(int ii =0; ii < a.result.size(); ii++){System.out.println(a.result);}return a.result;}
In dieser anderen Klasse habe ich diese Methode um die Daten aus einer MySQL-Datenbank zu holen:
Mit der folgenden Methode kann ich die Daaten aauf der Konsole anzeigen lassen:
Java:
publicvoidprintData(ArrayList list){for(Iterator iter = list.iterator(); iter.hasNext();){String[] str =(String[]) iter.next();for(int i =0; i < str.length; i++){System.out.print(str[i]+"\t");}System.out.print(System.getProperty("line.separator"));}}
Ich habe schon was vom DefaultComboBoxModel gelesen, aber kenne mich damit gar nicht aus und weiss nicht, wie ich das implementieren kann, so dass ich das a.result (die Arrayliste) nutzen kann.
Wenn mir einer helfen könnte, wäre das echt super von euch.
Entweder bin ich blind oder ich check gar nichts mehr heute XD
Ich weiss nicht, wie ich das DefaultComboBoxModel einbinden muss.
Wo muss ich es unterbringen? was muss ich alles rein schreiben, damit die Daten auch angezeigt werden?
Muss ich evt. ne ganze neue Klasse erstellen?
Wie gesagt ich bin echt am Ende grade XD
Hilft es, wenn ich dir den ganzen Quellcode vom Programm rein poste damit du einen kompletten Überblick hast, oder wäre das zu viel?
Ja aber was genau verstehst du nicht bzw was funktioniert nicht?
Hast du es denn schon mal alleine probiert? Gibt ja schließlich zig Beispiele dazu im Netz.
Ja ich hab schon bisschen probiert, aber irgenwas funktioniert immer nicht.
Bisher bleibt die JComboBox immer leer, wenn ich versuche was zu basteln um die Konsolenausgabe iwi auf die ComboBox zu bekommen.
ich möchte mein Programm nun auch nicht zerschießen wenn ich da drin mit den DefaultComboBoxModel rum hantiere. Ich kenn mich wie gesagt damit gar nicht aus.
Wenn man sich nicht auskennt muss man sich einlesen.
Worauf ich hinaus will: es wird sich hier niemand hinsetzen und dir ein fertiges Beispiel hinschreiben. Die gibt es wie Sand am Meer. Lies dich ein, probier es aus und stell konkrete Fragen wenn du eine hast
ok ich hab nun endlich was hingebastelt bekommen
Mein problem ist nun, dass ich die Speicheradresse des einzelnen Objekts bekomme. Ich weiss nun nicht, ob meine Methode readData falsch ist oder ich beim ComboboxModel wasänern muss.
Daas Problem ist, dass ich auf ie Getter/Setter in der ArrayList "entry" nicht zugreifen kann.
(Die Daten werden bisher nur aus einer Datenbank gelesen und nicht geschrieben)
Hier mal die Implementierung des ComboBoxModels:
privateKundegetResultSet(ResultSet resultSet)throwsException{Kunde kunde =newKunde();while(resultSet.next()){String kundenname = resultSet.getString("Kundenname");String projektID = resultSet.getString("ProjektID");String zeit = resultSet.getString("Zeit");String mitarbeitername = resultSet.getString("Mitarbeiter");
kunde =newKunde(kundenname, projektID, zeit, mitarbeitername);}return kunde;}
müsste ich doch nur die ArrayListe irgendwie ändern und ich könnte mit Punktnotation auf die einzelnen Werte zugreifen, oder?
die ArrayListe sieht aktuell so aus
Java:
publicArrayList<Kunde> result =newArrayList();
und ich müsste die Implementierung dafür in der readData-Methode ändern oder?
Wenn ich dort die while-schleife durch
Java:
result =getResultSet(resultSet);
ersetzen möchte, bekomme ich einen Type-mismatch "Cannot convert from Kunde to ArrayList<Kunde>".
Nimmt die ArrayList<Kunde> das Objekt nicht auf?
1. Eine Methode, die einen Kunden zurückgibt, sollte nicht "getResultSet" heissen, sondern "getKunde" (wobei da das Deutsch-Englische Sprachgemisch auch nicht schön ist).
2. In deiner getResultSet Methode gehst du durch ein ResultSet und legst für jeden Eintrag eine neue Instanz von "Kunde" an. Du gibst aber nur den zuletzt angelegten Kunden zurück! Die Lösung ist sowas wie das hier: