JList, aus selectedValue bestimmten Wert aus Containerklasse auslesen

Pete2016

Mitglied
Heyho an alle und erstmals Grüße von mir.

Folgendes Problem: Ich habe eine Containerklasse "data_pflanze" erstellt und mittels dieser wird eine JList in der Klasse "Herb_gui" befüllt. Nun will ich aus dem Jlist selectedValue die Datenbank ID auslesen, um damit Änderungen in der MySql tablle machen zu können. Die Containerklasse bekommt die Daten aus einer MySql Tabelle. Ich bekomme die id aber nicht aus dem Model bzw aus dem selected value ....

Containerklasse:
Java:
package herbarium;

public class data_pflanze {

  private int pflanze_id;
  private String pflanze_name;

  public data_pflanze()
  {  }

  public data_pflanze(int pflanze_id,String pflanze_name)  {
  this.pflanze_id = pflanze_id;
  this.pflanze_name = pflanze_name;
  }

  public int getPflanze_id() {
  return pflanze_id;
  }

  public void setPflanze_id(int pflanze_id) {
  this.pflanze_id = pflanze_id;
  }

  public String getPflanze_name() {
  return pflanze_name;
  }

  public void setPflanze_name(String pflanze_name) {
  this.pflanze_name = pflanze_name;
  }

  @Override
  public String toString()
  {
  return getPflanze_name();
  }

}

GUI Klasse:
Java:
package herbarium;

import javax.swing.DefaultListModel;

public class Herb_gui extends javax.swing.JFrame {

  MySql_herb data = new MySql_herb();
  DefaultListModel model = new DefaultListModel();
  int id;

  public Herb_gui()
  {
  initComponents();
  }

  private void jb_refreshActionPerformed(java.awt.event.ActionEvent evt) {

  model.clear();
  get_data();

  }

  private void btn_addActionPerformed(java.awt.event.ActionEvent evt) {

  data.Insert_plant(tf_insert_plant.getText());

  }

  private void btn_changeActionPerformed(java.awt.event.ActionEvent evt) {

  for(int i = 0; i <data.dp.size();i++)
  {
  if(jList1.getSelectedValue().equals(data.dp.get(i).getPflanze_id()))
  {
  id = data.dp.get(i).getPflanze_id();
  }
  }

  //Methode zum Ändern von Datensätzen
  Change_plant( plant, id);

  }

  private void btn_deleteActionPerformed(java.awt.event.ActionEvent evt) {
  get_data();
  }


  private void get_data()
  {
  model.clear();
  data.all_data();
  for(int i = 0; i < data.dp.size(); i++)
  {
  model.addElement(data.dp.get(i));
  }
  jList1.setModel(model);
  }
}

In der JList soll nur der Name angezeigt werden. Für MySql Selects usw. brauche ich aber die ID aus der Datenbank.

Java:
  for(int i = 0; i <data.dp.size();i++)
  {
  if(jList1.getSelectedValue().equals(data.dp.get(i).getPflanze_id()))
  {
  id = data.dp.get(i).getPflanze_id();
  }
  }

So kommt nur "Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: herbarium.data_pflanze cannot be cast to java.lang.String" raus. Im Model sind die Daten aber drin.
debug2.png

"data.dp" ist die Liste der Containerklasse. Irgendwie muß ich den JList select mit der ID in der for Schleife vergleichen.


Code:
id = ((data_pflanze)jList1.getSelectedValue()).getId();
Bei diesem Vorschlag kommt immer "incompatible types: String cannot be converted to data_pflanze" raus.
Hat jemand eine Idee wie ich das lösen kann?
Mfg Pete
 
Zuletzt bearbeitet von einem Moderator:

JCODA

Top Contributor
Vermutung: Deine JList hat kein generisches Attribut bzw sie hat das Attribut String.
Eine Lösung hierfür wäre, sowohl die Jlist, wie auch das TableModel bekommen "data_pflanze" als generisches Attribut.
Ansonsten sind die "anderen" Zeilen bei der Fehlermeldung natürlich interessant.
 

Pete2016

Mitglied
Also sie hat m.E. nach das Attribut Object über das List Model und das müsste ja damit theorethisch ausgelesen werden können. Wie kann ich überprüfen, ob die JList bzw. das Model generisch ist? So wie das jetz verstanden bzw. gelesen hab, sollte es generisch sein(Bin aber auch Laie in dem Jargon hier). Habe gerade gelesen, das man den selectexd value iwie auf den tatsächlichen Objekttyp zurück casten muß. Hier mal alle Zeilen:

debug4.PNG
und der nächste Versuch (allerdings hab ich hier keinen Bezug zu selected value).

debug3.PNG
 

Pete2016

Mitglied
Habe jetzt anstatt
"DefaultListModel model = new DefaultListModel()"
"DefaultListModel<data_pflanze> model = new DefaultListModel<>();"
benutzt. Dann hab ich den JList Typ auf <data_pflanze> umgestellt. Vorher war der auf <String>.

Jetzt kommt folgendes im auto generate obere Zeile:debug5.PNG

und unten:
debug6.PNG
Was müsste ich denn da im Code Customizer der Jlist genau ändern?
 

Pete2016

Mitglied
Habe es letztendlich durch die Hilfe von JCODA lösen können. Vielen Dank an dieser Stelle noch mal^^.
Also für alle nochmal die ev. mal vor dem gleichen Prob stehen. Habe anstatt
"DefaultListModel model = new DefaultListModel()"
"DefaultListModel<data_pflanze> model = new DefaultListModel<>();"
benutzt. Dann hab ich den JList Typ im Designer unter Type Parameter von <String> auf <data_pflanze> umgestellt. Im Code Customizer von jList1 wurde der Standard Code durch
jList1.setModel(model); ersetzt und aus get_data() Methode rausgenommen.
Jetzt kann ich den selectedValue der JList direkt als id vergleichen.
Code:
        int id = 0;
        for(int i = 0; i <data.dp.size();i++)
        {
             if(jList1.getSelectedValue().getPflanze_id() == (data.dp.get(i).getPflanze_id()))
             {
                id = data.dp.get(i).getPflanze_id();
             }
        }

Mfg Pete
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Mady Daten von JList & Combobox in JTable adden Java Basics - Anfänger-Themen 2
U JList erstellen Java Basics - Anfänger-Themen 2
Soloeco JList/DefaultListModel: Wie kann ich ein Panel hinzufügen? Java Basics - Anfänger-Themen 1
J Objekt bei Auswahl in jList ändern Java Basics - Anfänger-Themen 6
D JList ListSelectionEvent entfernen? Java Basics - Anfänger-Themen 13
F JList Elemente mit Strings vergleichen Java Basics - Anfänger-Themen 12
S Export aus JList Java Basics - Anfänger-Themen 6
M Erste Schritte JList einträge Java Basics - Anfänger-Themen 1
M Erste Schritte Doppelte Ausgabe? (JList) Java Basics - Anfänger-Themen 1
M Erste Schritte Auswahl in einer JList Java Basics - Anfänger-Themen 2
N JList + DefaultListModel + JScrollPane --> ensureIndexIsVisible funktioniert nicht immer Java Basics - Anfänger-Themen 1
C JList Einträge nach Datum sortieren Java Basics - Anfänger-Themen 3
J Element zu jList hinzufügen NullPointerExcepetion Java Basics - Anfänger-Themen 2
S jList --> Array einfügen und Liste löschen Java Basics - Anfänger-Themen 5
H Kein Zugriff auf das Element einer JList möglich: Fehlermeldung Java Basics - Anfänger-Themen 2
I in listFiles() oder JList Dateiendungen entfernen Java Basics - Anfänger-Themen 14
N Erste Schritte MySQL Tabelle in JList darstellen Java Basics - Anfänger-Themen 1
O JList aktualisieren während Dateieinlesung Java Basics - Anfänger-Themen 4
B JFileChooser und JList Java Basics - Anfänger-Themen 7
OnDemand Enumeration <> JList Java Basics - Anfänger-Themen 5
P Mehrfachauswahl in einer JList Java Basics - Anfänger-Themen 2
A JList Elemente in ein andres JList Adden Java Basics - Anfänger-Themen 5
C .txt und Jlist Java Basics - Anfänger-Themen 10
J Daten in eine JList einfügen Java Basics - Anfänger-Themen 6
A JList / toString modify Java Basics - Anfänger-Themen 2
K jlist an text anpassen Java Basics - Anfänger-Themen 3
D Erste Schritte JList + Checkbox Java Basics - Anfänger-Themen 5
I kein zugriff auf jList oder Textfield Java Basics - Anfänger-Themen 2
A JList bearbeiten Java Basics - Anfänger-Themen 2
M Index einer JList ausgeben Java Basics - Anfänger-Themen 4
M Inhalt/Wert aus einer JList ablesen Java Basics - Anfänger-Themen 5
J Markierte Einträge (Dateien) in JList sollen in einen anderen Ordner verschoben werden. Java Basics - Anfänger-Themen 12
J Markierte Items in einer JLIST in einen Ordner verschieben Java Basics - Anfänger-Themen 2
A Input/Output Hashmap in einem JPanel via JList anzeigen Java Basics - Anfänger-Themen 8
S ListModel - Anzeige im JList Java Basics - Anfänger-Themen 4
H JList Java Basics - Anfänger-Themen 2
G JList Objekte richtig anzeigen in JDK 6 Java Basics - Anfänger-Themen 5
U JList Java Basics - Anfänger-Themen 6
L HashMap zu JList Java Basics - Anfänger-Themen 6
C Input/Output Inhalte von ArrayList und JList in Datei schreiben Java Basics - Anfänger-Themen 5
M Jlist Elemente hinzufügen Java Basics - Anfänger-Themen 2
F Koordinaten JList darstellen Java Basics - Anfänger-Themen 4
M BeanBinding Jlist an Jlabel Java Basics - Anfänger-Themen 2
M GUI JList - Objekte listen u. Feld anzeigen? Java Basics - Anfänger-Themen 16
E JList GUI aktualisieren? Java Basics - Anfänger-Themen 3
JAVAnnik JList Auswahl Java Basics - Anfänger-Themen 2
Z In JList per Doppelklick eine Datei öffnen (z.B. ein PDF) Java Basics - Anfänger-Themen 16
P Jlist + Popupmenu Java Basics - Anfänger-Themen 10
M Properties Eintrag löschen, welcher in der JList "ausgewählt" wurde Java Basics - Anfänger-Themen 2
c_sidi90 File Array an Jlist übergeben Java Basics - Anfänger-Themen 11
J JList Inhalt nach JButton Klick aktualisieren Java Basics - Anfänger-Themen 8
B JList und JTable: leere Zeilen bei listfiles(); Java Basics - Anfänger-Themen 5
N DefaultListModel auf JList sortieren Java Basics - Anfänger-Themen 7
A JList mit Überschrift Java Basics - Anfänger-Themen 2
K Scrollbalken in JList funktioniert nicht Java Basics - Anfänger-Themen 9
B JList wird nicht aktualisiert bzw hat keine Items Java Basics - Anfänger-Themen 2
D JList nicht sichtbar Java Basics - Anfänger-Themen 4
B JList mit Scrollbar? Java Basics - Anfänger-Themen 7
K Datenbindung an JTable, JList, Primärschlüssel verstecken Java Basics - Anfänger-Themen 4
M JList Event Java Basics - Anfänger-Themen 5
M JList Index selektieren ausschalten. Java Basics - Anfänger-Themen 7
M ArrayList<int[]> - Problem mit JList! Java Basics - Anfänger-Themen 27
M JList + ListModel Java Basics - Anfänger-Themen 26
L JList Aktualisieren funktioniert nur Zufällig Java Basics - Anfänger-Themen 3
T JList aktualisieren Java Basics - Anfänger-Themen 12
T alle Ordner in einem Ordner in JList anzeigen Java Basics - Anfänger-Themen 3
R .Jpg anzeigen lassen nach klick in JList Java Basics - Anfänger-Themen 11
F Hilfe! JList Inhalte vertauschen Java Basics - Anfänger-Themen 2
A Eintrag einer JLIST speichern Java Basics - Anfänger-Themen 3
A Anordnung von JList Elementen Java Basics - Anfänger-Themen 3
B JList wird nach Ändern weiß Java Basics - Anfänger-Themen 11
B Einträge im JList einfügen Java Basics - Anfänger-Themen 9
S JList mit icons UND strings für Dialogbox Java Basics - Anfänger-Themen 2
hdi Fehler beim Model-Update einer JList (DefaultListModel) Java Basics - Anfänger-Themen 3
DStrohma Index einer markierten Zeile aus einer JList bekommen? Java Basics - Anfänger-Themen 5
P JList in JPanel anzeigen Java Basics - Anfänger-Themen 2
hdi Synchronisation zwischen JList und ListModel Java Basics - Anfänger-Themen 6
D Suche in JList nach dem ersten Buchstaben Java Basics - Anfänger-Themen 2
hdi JList mit Model und Observer -> Chaos, blicke nicht durch Java Basics - Anfänger-Themen 22
1 JList Problem : Synchronisation mit Vector klappt nicht :( Java Basics - Anfänger-Themen 6
G Elemente aus jList entferne. Java Basics - Anfänger-Themen 2
G JList updaten Java Basics - Anfänger-Themen 7
K jList scrollPane Java Basics - Anfänger-Themen 2
7 Java Swing: Wie JScrollPane zur JList hinzufügen? Java Basics - Anfänger-Themen 12
K JList verschiebt sich Java Basics - Anfänger-Themen 7
G String in JList Java Basics - Anfänger-Themen 11
T Jlist Object hinzufügen Java Basics - Anfänger-Themen 2
B Auslesen der JList Java Basics - Anfänger-Themen 11
S jList Multiple Selection mit Klick Java Basics - Anfänger-Themen 2
M Dateien in einem Ordner, JList Java Basics - Anfänger-Themen 7
G JList größe verändert sich Java Basics - Anfänger-Themen 2
M JList Parameter verschieben Java Basics - Anfänger-Themen 3
C jList - Zeile Markieren - jList.setSelectedIndex(wert); Java Basics - Anfänger-Themen 3
G JList mit LinkedList füllen Java Basics - Anfänger-Themen 2
G JList Mehrfachselektion Java Basics - Anfänger-Themen 6
N 2 spaltige JList, mit dynamischen Inhalt Java Basics - Anfänger-Themen 4
P JList mit setListData(<Vector>) Java Basics - Anfänger-Themen 7
J GUI mit JList Java Basics - Anfänger-Themen 2
N drag and drop mit JList Java Basics - Anfänger-Themen 5
G 1. Buchstabe eines JList eintrages verschieden farbig machen Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben