Hallo zusammen,
ich habe ein kleines Problem. Und zwar habe ich mir ein AbstractTableModel geschrieben, welches ich ueber einen Vector im Vector fülle. Wie das so halt ist, fuelle ich damit meine JTable.
Einen TableSorter habe ich mir auch angebunden. Der funktioniert auch ganz gut. Bei dem was er so macht. Hatte ich mir von folgender Seit besorgt.
http://java.sun.com/docs/books/tutorial/uiswing/components/example-1dot4/TableSorter.java
Tabelle und sortieren nach den Spalten funktioniert. Nun zu meiner Frage: Ich wollte die Eintraege aendern und loeschen. Wenn ich aber die Tabelle einmal sortiert habe, dann stimmt der Index im TableModel nicht mehr mit dem Index meines Vectors überein. Was kann ich machen, damit ich auch noch nach einem sortieren, die Eintraege aendern und loeschen kann. Ich hatte schon ueberlegt, ob ich in die Tabelle einen eindeutigen key nehme und anhand diesem meine Eintraege ändere bzw. loesche, aber das kann ja nicht die Lösung sein?
Mit dem folgenden code besorge ich mir ein Zeile, aber nachdem ich meine Tabelle neu sortiert habe, weiss mein SelectionListener nicht welche neuen Werte in der markierten Zeile stehen.
Ich hoffe ich habe mich verständlich ausgedrueckt.
ich habe ein kleines Problem. Und zwar habe ich mir ein AbstractTableModel geschrieben, welches ich ueber einen Vector im Vector fülle. Wie das so halt ist, fuelle ich damit meine JTable.
Code:
public Object getValueAt(int rowIndex, int columnIndex) {
Object zelle;
Vector zeile = new Vector();
//Zerlegen des zweidimensionalen Vectors
zeile = (Vector)zweiDimVector.get(rowIndex);
zelle = zeile.get(columnIndex);
//zelle = zeile.get(columnIndex).getClass();
return zelle;
}//End
http://java.sun.com/docs/books/tutorial/uiswing/components/example-1dot4/TableSorter.java
Tabelle und sortieren nach den Spalten funktioniert. Nun zu meiner Frage: Ich wollte die Eintraege aendern und loeschen. Wenn ich aber die Tabelle einmal sortiert habe, dann stimmt der Index im TableModel nicht mehr mit dem Index meines Vectors überein. Was kann ich machen, damit ich auch noch nach einem sortieren, die Eintraege aendern und loeschen kann. Ich hatte schon ueberlegt, ob ich in die Tabelle einen eindeutigen key nehme und anhand diesem meine Eintraege ändere bzw. loesche, aber das kann ja nicht die Lösung sein?
Mit dem folgenden code besorge ich mir ein Zeile, aber nachdem ich meine Tabelle neu sortiert habe, weiss mein SelectionListener nicht welche neuen Werte in der markierten Zeile stehen.
Code:
class ListSelectionAdapter implements ListSelectionListener
{
/**
*<b>Beschreibung:</b> Methode gibt die selektierte Zeile zurueck.
*/
public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting()) return;
ListSelectionModel lsm = (ListSelectionModel)e.getSource();
if (lsm.isSelectionEmpty()) {
} else {
// Selektierte Reihe merken
selectedRow = lsm.getMinSelectionIndex();
}
}
}
Ich hoffe ich habe mich verständlich ausgedrueckt.