JTable: insertElementAt() bei einem generischen Vector

rob-master

Grünschnabel
Hey ihr,

ich habe eine JTable erstellt und befülle diese mit Daten aus der Datenbank. Soweit so gut...Die Daten aus der Datenbank werden in einem generischen Vector gespeichert:

PHP:
private Vector<PD_pos> data = new Vector<PD_pos>();

Die Klasse (die mit dem Vector verwaltet wird) beinhaltet natürlich die entsprechenden Getter und Setter für meine Felder...was aber alles bis hierhin unproblematisch ist.

Das Problem ist jetzt folgendes. Es soll nun möglich sein, ein Zelle der JTable zu editieren (was auch klappt), allerdings soll der neue Wert natürlich in den Vector geschrieben werden bevor er an die JTable gefeuert wird. Allein das Anzeigen des neuen Wertes klappt schon nicht und es wird immer wieder der alte Wert angezeigt, meiner Meinung nach liegts aber eher an der unvollständigen setValueAt Methode. Meine setValueAt sieht jetzt so aus (die natürlich fehlerhaft ist):

PHP:
public void setValueAt(Object _value, int row, int col) 
    {
    	getRowData().set(index, element)
    	getRowData().insertElementAt(_value, row);
    	fireTableCellUpdated(row, col);
    }

Bis jetzt habe ich nämlich keine Idee, wie ich den _value in der Methode insertElementAt() verarbeite?. Eclipse, meckert da natürlich und gibt folgenden Fehler aus:

The method insertElementAt(PD_pos, int) in the type Vector<PD_pos> is not
applicable for the arguments (Object, int)

Was ja auch vollkommen klar ist, aber irgendwie hab ich grad eine Brett vorm Kopf und weiß nicht wie ich den Parameter _value in meinem Vector drücken kann...und noch dazu an der richtigen Stelle...

Kann mir da jemand mal auf die Sprünge helfen?

Danke im Voraus....
 
die sieht bei mir so aus:
PHP:
	public Object getValueAt(int rowIdx, int colIdx) 
	{	

	PD_pos a = data.get(rowIdx);
	    switch (colIdx) 
	    {
	      case 0: return a.getFeld1();
	      case 1: return a.getFeld2();
	      case 2: return a.getFeld3();
	      case 3: return a.getFeld4();
	      case 4: return a.getFeld5();
	      case 5: return a.getFeld6();
	      default: return "";
	    }
	 }
 
Jetzt gibts ne ClassCastException

Gut, meine Frage habe ich mir selber beantwortet. Meinen _value muss ich einfach casten und meine setValueAt() sieht jetzt so aus:
PHP:
    public void setValueAt(Object _value, int row, int col) 
    {

    	getRowData().setElementAt((PD_pos)_value, 1);
    	fireTableCellUpdated(getRowCount()-1, getColumnCount()-1);
    }

Jetzt bekomme ich allerdings eine ClassCastException, wenn ich in der GUI das Zellfeld editiere und entere...:(

Hat da jmd. eine Idee?
 
Zurück