Tastendruck von JButton an JTable senden

Status
Nicht offen für weitere Antworten.

Kiamur

Aktives Mitglied
Hallo!

Ich habe einen JDialog in dem sich ein JTable und ein Button befindet. In die Tabelle soll etwas eingegeben werden (in jede Zelle). Nach dem Drücken des Buttons sollen die Daten abgespeichert und der Dialog geschlossen werden.

Mein Problem ist die letzte Zelle, in die etwas eingegeben werden soll (muss). Die Zelle erhält den Fokus, man gibt etwas ein, und wenn dann der gemeine Nutzer den Button drückt OHNE vorher den Fokus von der letzten Zelle zu nehemen (entweder durch einen Klick in eine schon beschriebene Zelle, die Tab-Taste oder die Return-Taste), dann wird das, was in die Zelle eingegeben wurde nicht abgespeichert und ist weg.

Jetzt habe ich mir gedacht, dass ich einfach mit dem Drücken des Buttons ein "Return" an die Tabelle sende, als ob es von der Tastatur kommen würde. Mein Problem ist nur, ich weiss nicht wie. Könnt ihr mir helfen?

(Vielleicht gibt es ja auch eine bessere Lösung für mein Problem)

Gruß
Maik
 
Du könntest den Diaglog mit einen WindowListenert belegen. In dem Listener implementierst du soetwas wie:

Code:
  class DiagListener extends WindowAdapter{
    public void windowDeactivated(WindowEvent event1) {
      this.tableModel = dialog.jTable1.getModel;
    }
  }

musst aber dann den jTable im Dialog als public static definieren
 
Danke an euch beide! Ich habe es jetzt mit table.editCellAt() hinbekommen, indem ich einfach die zu bearbeitende Zelle mit dieser Methode wechsele.

Ein Frage hätte ich noch an Mag1c: Was bedeutet denn "JTable#stopCellEditing" ? stopCellEditing ist doch keine Methode von JTable, oder?

Gruß
Maik
 
Oh,

ja, sorry. Die stopCellEditing gehört ja zum CellEditor. Dann also:

Code:
if (table.isEditing()) table.getCellEditor().stopCellEditing();

Gruß
Mag1c
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben