Folgendes Problem:
ich lasse mir eine Liste erstellen mit Datebank Einträgen
vom ResultSet (songlist).
mit
das ganze in Pane und nem Button zum löschen der getSelected Einträge
Problem ist wie komme ich von den selectedIndices auf die Rows die ich löschen will,
Wie ihr schon seht sortiere ich die Einträge im RS nach Artist, Title.
d.h. wenn ich mir den RS ausgebe steht in Row 1 zb.
rowid Artist Title Genre
7 ABBA ... ...
d.h. ich möchte die 7. Row meiner DB löschen
Indizes beginnen mit 0, Rows mit 1
d.h. ich muss aufjedenfall inkrementieren
aber zb bei der Ausgabe von indices steht kein int wert sondern wohl ein Hash
z.b.: selectedIndices:[I@3a81cdcc
so habe ich es schon versucht:
selectedIndices[i+1] beinhaltet aber eben kein int. deshalb wird auch Exception geworfen.
Jemand nen Tipp ?
ich lasse mir eine Liste erstellen mit Datebank Einträgen
vom ResultSet (songlist).
mit
Java:
songlist = Main.DB.executeQry("select rowid, Artist, Title, Genre from '" + active + "' Order by Artist asc, Title asc");
DefaultListModel m = new DefaultListModel();
JList l = new JList(m);
int[] selectedIx = l.getSelectedIndices();
...
while (songlist.next())
{
s = songlist.getString("Artist")...
m.addElement(s);
}
Java:
JScrollPane pane = new JScrollPane(l);
JButton delButton = new JButton("Delete Song");
delButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(l.getSelectedIndices().length > 0) {
int[] tmp = l.getSelectedIndices();
int[] selectedIndices = l.getSelectedIndices();
for (int i = tmp.length-1; i >=0; i--) {
selectedIndices = l.getSelectedIndices();
System.out.println("selectedIndices:"+selectedIndices);
m.removeElementAt(selectedIndices[i]);
}
Problem ist wie komme ich von den selectedIndices auf die Rows die ich löschen will,
Wie ihr schon seht sortiere ich die Einträge im RS nach Artist, Title.
d.h. wenn ich mir den RS ausgebe steht in Row 1 zb.
rowid Artist Title Genre
7 ABBA ... ...
d.h. ich möchte die 7. Row meiner DB löschen
Indizes beginnen mit 0, Rows mit 1
d.h. ich muss aufjedenfall inkrementieren
aber zb bei der Ausgabe von indices steht kein int wert sondern wohl ein Hash
z.b.: selectedIndices:[I@3a81cdcc
so habe ich es schon versucht:
Java:
songlist.absolute(selectedIndices[i+1]);
rowid = songlist.getRowId("rowid");
Main.DB.executeStmt("delete from '"+active+"' where rowid='"+rowid+"'");
selectedIndices[i+1] beinhaltet aber eben kein int. deshalb wird auch Exception geworfen.
Jemand nen Tipp ?