Hallo, mein Problem ist folgendes:
Ich habe ein TableModel bei dem ich Artikel, deren Preise und eine Anzahl habe. Jetzt habe ich die Spalte "Anzahl" veränderbar gemacht. Wenn man dort etwas einträgt soll automatisch der Preis Anzahl * Preis berechnet werden. Das Funktioniert auch im Prinzip, allerdings erst wenn man nochmal eine Zeile verändert/ Enter drückt. Ich nehme an ich muß irgendwie einen Listener oder so aufrufen nachdem die Zelle geändert wurde, so dass die ganze Zeile geupdatet wird. Aber ich weiß nicht wie, und auch nicht wo genau ich diesen Listener schreiben müsste.
Die beiden wichtigen Funktionen sehen so aus:
Ich habe ein TableModel bei dem ich Artikel, deren Preise und eine Anzahl habe. Jetzt habe ich die Spalte "Anzahl" veränderbar gemacht. Wenn man dort etwas einträgt soll automatisch der Preis Anzahl * Preis berechnet werden. Das Funktioniert auch im Prinzip, allerdings erst wenn man nochmal eine Zeile verändert/ Enter drückt. Ich nehme an ich muß irgendwie einen Listener oder so aufrufen nachdem die Zelle geändert wurde, so dass die ganze Zeile geupdatet wird. Aber ich weiß nicht wie, und auch nicht wo genau ich diesen Listener schreiben müsste.
Die beiden wichtigen Funktionen sehen so aus:
Code:
public Object getValueAt(int rowIndex, int columnIndex) {
Artikel artikel = (Artikel)articels.get( rowIndex );
//anzahlArtikel is ein Integer Vektor in dem die aktuelle Anzahl des jeweiligen Artikels gespeichert ist
int anzahl = anzahlArtikel.get(rowIndex);
switch( columnIndex ){
case 0: return artikel.getName();
case 1: return new Double( artikel.getPreis() );
case 2: return anzahl;
case 3: return new Double ( anzahl * artikel.getPreis());
case 4: return new Double( artikel.getRabatt()*40 );
case 5: return new Double( anzahl * ( artikel.getPreis() - artikel.getPreis() * artikel.getRabatt() * 0.4 ) );
default: return null;
}
}
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
anzahlArtikel.set(rowIndex, (Integer)aValue);
}