JFORMS CellEditorListener

f4ke

Neues Mitglied
Hallo, folgendes Problem:
Ich möchte feststellen, wann eine Cell in einer JTable den Focus verliert, sprich das "Bearbeiten" abgeschlossen ist. Das mit dem editingSopped() funktioniert wie erwünscht, nun brauche ich aber die CellValue.

jTable_uebVorlagenListe.getDefaultEditor(Integer.class).addCellEditorListener(new CellEditorListener() {
@Override
public void editingStopped(ChangeEvent e) {
//Problem
}

//Problem: Hier brauche ich den Wert aus der Cell aber über das ChangeEvent e kriege ich ein javax.swing.JTable$NumberEditor und davon kann ich kein Objekt erstellen weil JTable.NumberEditor nicht public ist. Hat jemand eine Idee?
 

Thallius

Top Contributor
Ja, so geht man das nicht an. Der View ist nicht dafür gedacht Änderungen am Modell zu bemerken. Das Modell bekommt die Änderung an dem Wert mit und dort solltest du auch ansetzen deine Änderung zu "verwalten"
 

f4ke

Neues Mitglied
Habs schon gelöst durch:
jTable_uebVorlagenListe.getDefaultEditor(Integer.class).addCellEditorListener(new CellEditorListener() {

@Override
public void editingStopped(ChangeEvent e) {
CellEditor editor = (CellEditor) e.getSource();
....


Hab jetzt aber noch ne ungewöhnliche Frage.
Kann ich eine Methode zusammenbauen ohne vorher den String zu kennen? Sowas wie
String s = "Height";
haus.set+s() = 123;
Im Endeffekt soll dann haus.setHeight() aufgerufen werden.
 

Robat

Top Contributor
String s = "Height";
haus.set+s() = 123;
Im Endeffekt soll dann haus.setHeight() aufgerufen werden.
Wenn man mal davon absieht dass das Beispiel so keinen Sinn ergibt ist sicher Reflection das was der Sache am nächsten kommt. Die Methode muss es zur Laufzeit aber definitiv geben und über Reflektion kannst du sie dann "dynamisch" ansprechen. Das sollte aber immer das letzte Mittel der Wahl sein...
 

Neue Themen


Oben