Ich habe nun einen Datensatz in einer JList makieren können mit einen ActionListListener - jetzt möchte ich den Wert dieses selektierten Datensatzes als String auslesen - als int funktioniert es soweit......!
Wie kann ich einen selektierten Datensatz aus einer JList denn als String auslesen?
Dazu finde ich keine passende Lösung in der Api für JList......!
Naja das beantwortet halt nicht meine Frage - leider ist in der API von JList keine Angabe, welche Methode den Wert in einen String umwandelt.......... und daher werde ich das auch nicht in dem Beispiel finden! ;-)
Würde ich jetzt nicht schon geschaut haben, würde ich mich wieder tagelang mit dem Beispiel rumschlagen ohne dort jemals auf eine Lösung zu stoßen - na vielen Dank!!
Oder kannst du mir direkt sagen, wo dort in den Beispielen ein selektierter Wert als String ausgelesen wird - wo finde ich das???
Wie in einem anderen Post bereits erwähnt, erhält man mit der getSelectedValue() das aktuell selektierte Objekt. Wenn das Objekt ein String ist gibt es unzählige Möglichkeiten dies in einen String zu wandeln. Dies hat allerdings nichts mit JList zu tun. Methoden dazu liefert z.B. die Klasse String selbst (siehe API Doku String) oft reicht auch die toString() welche jedes Object besitzt. Wenn man "weiß" von welchem Typ das Objekt ist kann man als weitere Möglichkeit auch noch casten:
Das ist die generische Erweiterung der Klasse seit Java 7. Somit kann/sollte man direkt bei der Initialisierung angeben von welchem Typ die Objekte sind, die die JList beinhaltet. Die Methode getSelectedValue() liefert somit dann auch ein Objekt dieses Types zurück. Geht allerdings erst ab Java 7.
Ja danke gut erklärt - bringt mir aber jetzt nicht wirklich was! ;-) Ist irgendwie so wie im Englischunterricht wenn Grammatik erklärt wird und dann sich wundern warum keiner Englisch sprechen kann.......! Man besuche mal einen Kurs "Deutsch für Ausländer" - so hat niemand von uns Deutsch gelernt! :-D
Kann ich wieder irgendwas irgendwo herumsuchen ohne zu wissen wonach ich genau suche und ob es das richtige ist wenns mir begegnet.......! ;-)
Achja genau stimmt ja - ich kann nochmal 10 Fragen hier reinstellen, sonst würde man mirs ja zu einfach machen...! :-D
Also:
Wenn das Objekt ein String ist gibt es unzählige Möglichkeiten dies in einen String zu wandeln. Dies hat allerdings nichts mit JList zu tun. Methoden dazu liefert z.B. die Klasse String selbst (siehe API Doku String) oft reicht auch die toString() welche jedes Object besitzt
Wenn ich sowas jetzt nehme, dann probier ich das mal aus (weil ich in den letzten zig Monaten ja doch irgendwie was mitbekommen hab - wobei ich mich ärgere was ich hätte alles mitbekommen können und nicht habe... dank solcher Erklärungen die mich wieder sinnlos beschäftigen) - dann mach ich sowas wie :
??
Dann hab ich nämlich genau das Problem dass ich wieder einfach irgendwas mache - ob es Sinn macht oder nicht! Ich frag ja nicht hier damit ich einfach wieder irgendwas probiere, sondern um konkret ne Lösung zu haben die funktioniert - rumprobieren kann ich selber immer..... dafür brauchts kein Forum!
Also konkret bitte und keine Metainformationen sonst lern ich hier gar nix und eure Bemühungen (die wohl auch gut gemeint sind) verhallen im endlosen Raum des Internets......... ;-) (Metainformationen können erst fruchten wenn die konkreten Informationen da sind - obwohl mir klar ist dass heute allzu viele Leute von etwas reden wovon sie keine Ahnung haben...) ;-)
Hierbei handelt es sich nicht um Metainformationen, sondern um Grundlagen.
Wenn man sich mit der Java Programmierung beschäftigt sollte man sich irgendwann mit solchen Sachen beschäftigen (meiner Meinung: spätestens wenn man anfängt GUIs zu programmieren).
Klar kann man nicht sofort alles wissen, deshalb hab ich in dem Fall ja auch die Möglichkeiten, die es gibt aufgezeigt. Nun muss man sich aber selbst damit beschäftigen (in dem nachliest, Fragen stellt...) um heraus zu finden, was für den konkreten Zweck die geeigneteste Lösung/Vorgehensweise ist.
In Deinem konkreten Fall wäre es interessant zu wissen mit welcher Java Version bzw. für welche Java Version Du Dein Programm entwickelst
Naja ich hab eine LIste aus der ich dann ein Element selektieren möchte und mit dem Wert aus dem Element dann eine SQL Abfrage starten........ und das Ergebnis in einer weiteren JList anzeigen......!
liefert dir ein Object zurück. (Keine Ahnung, was für Objekte du in deine Liste gesteckt hast.) Und aus diesem Object musst du nun einen String machen (Stichwörter: cast oder evtl. toString-Methode).
list_1.addListSelectionListener(newListSelectionListener(){publicvoidvalueChanged(ListSelectionEvent event){int index = list_1.getSelectedIndex();System.out.println(index);// Wert aus index herauslesen als StringObject listobject = list_1.getSelectedValue();String objektstring = listobject.toString();System.out.println("Das Objekt: "+ listobject);System.out.println(objektstring);// Neue SQL Abfrage mit dem String-Wert// Spalten und Datentyp der Spalte aus dem Ergebnis auflisten// SPalten und Datentyp in weitere JListen anzeigen}});
Wieder was gelernt - diesmal über den Umgang mit Objekten......!
In den Kommentaren seht ihr schon meine nächsten Fragen ;-)! Jetzt muss ich mal schauen ob ich alles in dieser Methode mache oder eine neue anfangen muss usw....!
Jetzt hab ich zu diesem Code eine weitere Frage....
ich brauch den Wert in einer neuen Methode, also der SQL Abfrage. Am besten wär natürlich wenn die MEthode den String-Wert "objektstring" herausgeben würde.
Dieser Code zeigt jetzt den String-Wert der Selektion in einer JList an. Diesen Wert möchte ich jetzt für eine weiter SQL ABfrage nutzen und dann eine zweite JList darauf aufbauen......!
Im Grunde soll die Methode einfach nur schauen ob sicher der selektierte Datensatz ändern und diesen dann zurückgeben...!
Jetzt hab ich zu diesem Code eine weitere Frage....
ich brauch den Wert in einer neuen Methode, also der SQL Abfrage. Am besten wär natürlich wenn die MEthode den String-Wert "objektstring" herausgeben würde.
Die Listenermethode kann nichts zurück geben, Du müsstest den Wert also außerhalb des Listeners "speichern" -wenn das wirklich notwenig ist.
Wo bzw. wann wird denn die andere Methode aufgerufen?
Noch ein Hinweis zum ListSelectionListener:
Du solltest in der valueChanged() noch eine Überprüfung
Also wie gesagt möchte ich mit dem gerade selektierten Datensatz eine SQL Abfrage machen und dann eine zweite Liste füllen.
Das bedeutet, dass in der ersten JList eine Wahl getroffen wird und dann die weiteren Möglichkeiten in einer zweiten JList erscheinen..... eigentlich überall zu finden sowas........!
Wie lässt sich das denn realisieren, wenn ich den Wert gar nicht zurückbekomm?
Du müsstest den Wert also außerhalb des Listeners "speichern" -wenn das wirklich notwenig ist.
Also wie gesagt möchte ich mit dem gerade selektierten Datensatz eine SQL Abfrage machen und dann eine zweite Liste füllen.
Das bedeutet, dass in der ersten JList eine Wahl getroffen wird und dann die weiteren Möglichkeiten in einer zweiten JList erscheinen..... eigentlich überall zu finden sowas........!
In dem Fall würdest Du die zweite Methode ja ohnehin aus dem Kontext der valueChanged aufrufen und hier hast Du den Wert ja verfügbar und kannst in dieser Methode übergeben. (abgesehen davon, dass man ja an jeder Stelle an der die JList bekannt ist, deren selectedValue() aufrufen kann)
ja gut aber wenn er sich ändert? dann wird das erst bekannt wenn man das wieder abruft.... daher ja der listener, damit sich das immer direkt aktualisiert (sichtbar dann in der zweiten Liste,aber dafür muss der Wert in der ersten Liste ja schon da sein......)
Hm also wieder ein klarer Fall von Verklärung :-D!
publicvoidfoo(){String s ="Hallo";bar(s);}publicvoidbar(String text){...}
Ich vermute mal, dass das nicht die Antwort auf Dein Problem ist. Eventuell schilderst Du mal Dein konkretes Problem und postest den Code mit dem Du es versucht hast zu lösen.
Hm kann ich nix mit den Beispielen anfangen - da steht ja nix mit valuechagned() usw....!
Naja ich habs ja hier shcon mehrmals erklärt:
Ich hab eine Jliste und kann nun wie oben im Code zu sehen ist auch das selektierte Element ausgeben als String.
Mit diesem String wert möchte ich nun die SQL Datenbank abfragen nach Werten in einer Spalte - wo dieser String-Wert aus der ersten JList eben zu finden ist - und diese Werte dann in einer weiteren JList ausgeben/anzeigen.
Code gibts nicht, weil ich wie schon gesagt ich eben diesen STring-Wert nicht aus der Methode bekomm....!
Also String-Wert aus der Methode nehmen, SQL Abfrage starten und das Ergebnis in einer zweiten JList anzeigen.......!
Wie gesagt, muss der String auch gar nicht "aus" der Methode raus, da ja alles innerhalb eines "Ablaufs" passieren soll.
Java:
...publicvoidvalueChanged(ListSelectionEvent event){if(!event.getValueIsAdjusting()){//Lesen des selektierten Wertes aus der JList list_1 und speichern in die Variable selectedValueString selectedValue = list_1.getSelectedValue().toString();//Kontrollausgabe der Selektion auf der KonsoleSystem.out.println(selectedValue);//Aufruf der Methode zur Datenbankabfrage und Aktualisierung der zweiten ListeexecuteQueryAndRefreshDataOfList2(selectedValue);}}...