Löschen eines Eintrages verbunden mit JList

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Guten Tach,

ich habe ein Problem beim Löschen eines Eintrages aus einer JList verbunden mit einer MySql - Datenbank.

Ich will mit Hilfe der ID des Datenbankeintrages den richtigen Eintrag aus der JList löschen(JList enthält all diese Datensätze aus der Datenbank).

Jedoch will ich in der JList nicht die ID anzeigen lassen. Mit der ID in der JList ist mir das löschen schon klar, ohne (so wie ich es will) jedoch nicht.

Hat jemand eine Idee.

Code:
public void dataDelete(){
		try{
                        //Was muss hier noch hinzugefügt werden?????
			String dat = ("delete from tblKunden where ID="  );
			dataQuery(dat);
			model.removeElementAt(liste.getSelectedIndex());
		}catch(Exception ex){
			System.out.println("Fehler beim Löschen :" + ex.getMessage());
		}
	}

Danke

Grüße Martin
 

André Uhres

Top Contributor
Versuch's mit einer Wrapperklasse:
Code:
package list;
/*
 * ListItem.java
 */
public class ListItem{
    private String data;
    private String id;
    public ListItem(final String data, final String id){
        this.data = data;
        this.id = id;
    }
    public String getId() {
        return id;
    }
    public String toString() {
        return data;
    }
}
Code:
package list;
/*
 * ListDemo.java
 */
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
public class ListDemo extends JFrame {
    private JList list;
    private DefaultListModel model;
    public ListDemo() {
        super("List Demo");
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setSize(400,300);
        setLocationRelativeTo(null);
        model = new DefaultListModel();
        for (int i = 1; i < 6; i++) model.addElement(new ListItem("Item "+i, ""+i));
        list = new JList(model);
        getContentPane().add(new JScrollPane(list), BorderLayout.CENTER);
        list.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
            public void valueChanged(final ListSelectionEvent e) {
                if(e.getValueIsAdjusting()) return;
                ListItem it = (ListItem)list.getSelectedValue();
                System.out.println(it.getId());
            }
        });
    }
    public static void main(final String args[]) {new ListDemo().setVisible(true);}

}
 
G

Guest

Gast
Hallo,

habs mal versucht,

leider wird der Eintrag nicht gelöscht.

Weiters wird immer der Fehler "java.lang.String cannot be cast to ListItem" herausgegeben bei der Zeile:

Code:
ListItem it = (ListItem)liste.getSelectedValue();

Obwohl ja getSelectedValue eine JList zurückgibt.

Die Klasse ListItem
Code:
public class ListItem {
	 	public String data;
	    public String ID;
	    public ListItem(final String data, final String ID){
	        this.data = data;
	        this.ID = ID;
	    }
	    public String getID() {
	        return ID;
	    }
	    public String toString() {
	        return data;
	    }
}

Und die Funktion datenLoeschen()
Code:
public void datenLoeschen(){
		try{
			model.removeElementAt(liste.getSelectedIndex());
			liste.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
				public void valueChanged(ListSelectionEvent e){
					if(e.getValueIsAdjusting()) return;
					ListItem it = (ListItem)liste.getSelectedValue();
					System.out.println(it.getID());
					String dat = ("delete from tblbenutzer where ID=" + it.getID());
					datenEintragen(dat);
				}
			});
		}catch(Exception ex){
			System.out.println("Fehler beim Löschen :" + ex.getMessage());
		}
	}
 
S

SlaterB

Gast
> Obwohl ja getSelectedValue eine JList zurückgibt

eine JList??

weder eine JList noch korrekterweise ein ListItem, sondern ein String, wie es die Fehlermeldung doch sagt,

wieso siehst du diese Fehlermeldung und sagst dann 'Obwohl ja getSelectedValue [was anderes] zurückgibt'
was bringt dich zu dieser Vermutung/ Erkenntnis?

---------

es scheint, als wenn nur Strings in der JList sind,
wie wird die JList denn befüllt (Code)?
 
G

Guest

Gast
Weil hinter getselectedValue() object JList steht, dachte ich es mir


Liste wird folgendermaßen befüllt:

Code:
public void listefuellen(){           
	      try{
	    	 model.clear();
	         datenauslesen("select * from tblbenutzer");
	         while(rs.next()){
	             String s = rs.getString(2) + " " + rs.getString(3);
	        	 model.addElement(s);
	         }   
	      }catch(SQLException sqle){
	         System.out.println("Listefuellen fehler" + sqle.getMessage());
	      }
	}


public void datenauslesen(String daten){
		try{
			databaseConn();
			st = conn.createStatement();
			rs = st.executeQuery(daten);
		}catch(SQLException sqle){
			System.out.println("Fehler beim auslesen" + sqle.getMessage());
		}
	}
 
S

SlaterB

Gast
das heißt, dass 'Object' zurückgegeben wird und dass die Operation der Klasse JList zuzurechnen ist (und nicht einer der Oberklassen/ Interface)

--------

du fügst in deine Liste keine ListItem ein, sondern Strings,
da wunderst du dich, dass String rauskommen statt per Zauberhand ListItems?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S gesamte Tabelle löschen Datenbankprogrammierung 2
F SQLite Datensatz löschen Datenbankprogrammierung 13
R PostgreSQL JPA - Löschen und orphanRemoval Datenbankprogrammierung 6
B Mit Button einen Datensatz löschen Datenbankprogrammierung 2
A Eine MySQL Zeile mit JDBC löschen Datenbankprogrammierung 5
B Fortlaufende Nummer - Was tun bei löschen? Datenbankprogrammierung 6
R eclipselink - referenzierte Entity löschen Datenbankprogrammierung 0
P Indizes / Fremdschlüssel löschen Datenbankprogrammierung 2
H Oracle Aus Datenbank löschen Datenbankprogrammierung 6
P Mit Hibernate mehrere Datensätze löschen Datenbankprogrammierung 7
A Ausgewählten Jtable Eintrag aus Db löschen Datenbankprogrammierung 9
reibi Derby/JavaDB Derby DB löschen Datenbankprogrammierung 5
P JPA- Entities bleiben nach dem Löschen (unsichtbar?) in der Datenbank Datenbankprogrammierung 6
J Datensätze löschen Datenbankprogrammierung 6
O Löschen vieler Datensätze mit Hibernate Datenbankprogrammierung 11
C Hibernate Datensatz löschen Datenbankprogrammierung 2
U Nur den ersten Datensatz löschen wenn mehrere gleiche da sind Datenbankprogrammierung 2
M Datenbankeintrag bleibt nach Löschen in JSP vorhanden Datenbankprogrammierung 8
D Mit Trigger Tupel löschen verhindern Datenbankprogrammierung 3
L MySQL Einträge löschen schlägt fehl Datenbankprogrammierung 2
F hibernate_seqeunce reseten (löschen) Datenbankprogrammierung 2
J MySQL Löschen von Rows mit JDBC Datenbankprogrammierung 9
M HSQLDB 2.0 - wie tmp-Verzeichnis löschen Datenbankprogrammierung 2
turmaline [Hibernate] @OneToOne: Löschen einer referenzierten Instanz Datenbankprogrammierung 2
G Oracle Zeile löschen Datenbankprogrammierung 2
C SQL String zwei Tabellen vergleichen und gleiche Zeile löschen Datenbankprogrammierung 25
Java.getSkill() Datensatz / Tupel automatisch nach xy Tagen / Stunden löschen Datenbankprogrammierung 7
D SQL : Objekte individuell löschen können Datenbankprogrammierung 5
R JPA, Spring, löschen einer Entity Datenbankprogrammierung 2
H MySQL Einträge löschen Datenbankprogrammierung 5
M Datensatz aus Datenbank löschen Datenbankprogrammierung 6
Antoras Zeile aus DB löschen und ID runterzählen Datenbankprogrammierung 8
C Objekte aus Datenbank löschen Datenbankprogrammierung 6
F Löschen einer Zeile Datenbankprogrammierung 4
G Mit Java-Programm Datenbank löschen/neu anlegen Datenbankprogrammierung 5
E SQL-Frage (Löschen aller Datensätze) Datenbankprogrammierung 9
P Tabellen löschen Datenbankprogrammierung 4
O Size ResultSet betrachtete Zeilen "löschen" Datenbankprogrammierung 5
G MySQL Zeile löschen und gleich Optimieren Datenbankprogrammierung 6
T [jdbc] einen Eintrag aus mehreren Tabellen löschen (Batch) Datenbankprogrammierung 3
G mySQL: kaskadierendes Löschen Datenbankprogrammierung 7
Robert Zenz Aufteilen von Up/Downvotes eines Benutzers in drei Gruppen. Datenbankprogrammierung 0
H Oracle Resize eines Images in Java und Rückgabe des Image als BLOB an die Oracle Datebank Datenbankprogrammierung 14
damike84 Hibernate: persistieren eines Graphen Datenbankprogrammierung 2
G Laufzeit eines Algorithmus mittels Big Theta bestimmen Datenbankprogrammierung 5
G ID zuweisung eines TerminKalenders (mehrere Kalender) Datenbankprogrammierung 8
D Hibernate: Zustand eines Objekts erkennen? Datenbankprogrammierung 0
S HSQLDB Verbieten eines update auf eine bestimmte reihe Datenbankprogrammierung 4
J Datenbankeintag eines Warenkorbes funktioniert nicht Datenbankprogrammierung 4
H MySQL Werte eines Datensatzes in einen anderen kopieren Datenbankprogrammierung 2
M [Hibernate]Abgleich eines lokalen Objekts mit dem Zustand aus der Datenbank. Datenbankprogrammierung 3
N Problem bei Erstellung eines Index Datenbankprogrammierung 12
G PostgreSQL Postgre: Passwort eines Benutzers ändern Datenbankprogrammierung 3
D Anzeige wärend des Ausführens eines Statements Datenbankprogrammierung 13
N executeUpdate "innerhalb" eines Resultsets Datenbankprogrammierung 14
S Select eines bestimmten Datensatzes Datenbankprogrammierung 4
J Kopieren eines Datensatzes Datenbankprogrammierung 4
R Effiziente Java-Methode zum finden eines freien PK Datenbankprogrammierung 7
M Zugriff auf eine Access-Datenbank innerhalb eines jar-Files Datenbankprogrammierung 7
brainray Bei MySQL alle Datenbanken eines Servers abfragen Datenbankprogrammierung 3
1 User die Rechte eines Datenbankerstellers zuweisen? Datenbankprogrammierung 3
X SQL Abfrage für Ähnlichkeit eines Strings Datenbankprogrammierung 2
B SQL Abfrage. Nur den ersten eines Blocks Datenbankprogrammierung 2
M Passwort eines Technischen Users hinterlegen Datenbankprogrammierung 6
A JPA: Zweite Instanz eines Entitätsobjekts Datenbankprogrammierung 3
M Konvertierung eines Ojects to String Datenbankprogrammierung 3
T Datenbanknamen eines Datenbankservers auslesen Datenbankprogrammierung 9
J Größe eines ResultSets Datenbankprogrammierung 12
G Problem beim Schreiben eines Dateipfads in MySQL-DB Datenbankprogrammierung 9
F Filtern innerhalb eines Resultset Datenbankprogrammierung 12
W Anzahl der Spalten eines ResultSets bestimmen Datenbankprogrammierung 5
F die DN eines LDAP verzeichnisses abfragen Datenbankprogrammierung 2
B Laden eines JDBC Treiber. Datenbankprogrammierung 7
N Struktur eines Datenbankinterface? Datenbankprogrammierung 7
P Wirkliche Zeilenanzahl eines ResultSets ermitteln Datenbankprogrammierung 22
K frage zum ausführen eines INSERT statements Datenbankprogrammierung 16
K errechnen eines mittelwertes vom jdbc rSet Datenbankprogrammierung 4
M Abfrage trennt Ergbnis eines Atrributes nach den Leerzeichen Datenbankprogrammierung 4
F Abfrage eines DB Feldes aus einer mySQL Datenbank Datenbankprogrammierung 2
K Datenbank eines Forums nutzen Datenbankprogrammierung 11
J Alle Spalten und Zeilen eines ResultSets ausgeben ? Datenbankprogrammierung 2
B Zeilenzahl eines ResultSet ermitteln Datenbankprogrammierung 5

Ähnliche Java Themen


Oben