Hi zusammen,
ich habe folgendes vor:
ein JTable ist mit Werten gefüllt. wird nun eine Zeile angecklickt (und somit markiert) wird diese in einem Vector gespeichert. Mehrfachselektion soll möglich sein.
Über ein Button sollen nun diese Zeilen gelöscht werden.
Ist keine Zeile selektiert soll auch nichts gelöscht werden.
Und genau das ist das Problem. Denn meine "Konstruktion" speichert immer den letzten Wert und drückt man auf löschen so fliegt die Zeile raus obwohl man das gar nicht will.
Der komplette Code wäre etwas viel, daher hier der Auszug um den es geht:
ich habe folgendes vor:
ein JTable ist mit Werten gefüllt. wird nun eine Zeile angecklickt (und somit markiert) wird diese in einem Vector gespeichert. Mehrfachselektion soll möglich sein.
Über ein Button sollen nun diese Zeilen gelöscht werden.
Ist keine Zeile selektiert soll auch nichts gelöscht werden.
Und genau das ist das Problem. Denn meine "Konstruktion" speichert immer den letzten Wert und drückt man auf löschen so fliegt die Zeile raus obwohl man das gar nicht will.
Der komplette Code wäre etwas viel, daher hier der Auszug um den es geht:
Java:
dtm.addTableModelListener(new TableModelListener() // use the standard TableModelListener
{
public void tableChanged(TableModelEvent e)
{
if (unlockDataFlow)
{
//Object cellValue = ((Vector<Object[]>) dtm.getDataVector().elementAt(xy[1])).elementAt(xy[0]);
Object cellValue = dtm.getValueAt(xy[1],xy[0]);
dataModel.getCellInfoAndData(xy[0], xy[1], cellValue );
}
}
});
table.setCellSelectionEnabled(true);
table.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
rowLSM = table.getSelectionModel();
colLSM = table.getColumnModel().getSelectionModel();
rowLSM.addListSelectionListener(new ListSelectionListener()
{
@Override
public void valueChanged(ListSelectionEvent e)
{
if (e.getValueIsAdjusting())
{
return; // works here like break
}
ListSelectionModel lsm = (ListSelectionModel)e.getSource();
if (lsm.isSelectionEmpty())
{
xy[1] = -1;
}
else
{
int selectedRow = lsm.getMinSelectionIndex();
xy[1] = selectedRow;
}
}
});
colLSM.addListSelectionListener(new ListSelectionListener()
{
@Override
public void valueChanged(ListSelectionEvent e)
{
if (e.getValueIsAdjusting())
{
return;
}
ListSelectionModel lsm = (ListSelectionModel)e.getSource();
if (! lsm.isSelectionEmpty())
{
int selectedCol = lsm.getMinSelectionIndex();
xy[0] = selectedCol;
}
}
});