Hallo,
nach dem Verlassen einer Zelle findet eine Fehlerprüfung statt. Sollte diese einen Fehler feststellen, möchte ich, dass der User wieder zurück in die Zelle gebracht wird. Er soll quasi am Verlassen der Zelle gehindert werden, bis der Eingabefehler behoben ist.
Das Fehlerhandling ist mittels Observer gelöst.
Die update Funktion in meiner View:
Wenn der Anwender nun Feld A nach einem Eingabefehler verlässt und den Fokus auf Feld B setzt, wird mit dem aktuellen Code 766 mal update() ausgeführt, und danach landet der User trotzdem in Feld B. Irgendwie scheint editCellAt() nicht das richtige zu sein. Ich habe auch schon mit setcolumnSelectionInterval(), setRowSelectionInterval() bzw. mit changeSelection() rumprobiert. Diese hatten jedoch gar keinen sichtbaren Einfluss.
nach dem Verlassen einer Zelle findet eine Fehlerprüfung statt. Sollte diese einen Fehler feststellen, möchte ich, dass der User wieder zurück in die Zelle gebracht wird. Er soll quasi am Verlassen der Zelle gehindert werden, bis der Eingabefehler behoben ist.
Das Fehlerhandling ist mittels Observer gelöst.
Die update Funktion in meiner View:
Java:
public void update(Observable obs, Object obj) {
GuiError error;
if( obj instanceof GuiError) {
error = (GuiError) obj;
if(!error.getText().trim().isEmpty()) {
errorLabel.setText(error.getText());
table.editCellAt(error.getRow(), error.getCol());
System.out.println(error.getRow()+" "+error.getCol());
}
}
}
Wenn der Anwender nun Feld A nach einem Eingabefehler verlässt und den Fokus auf Feld B setzt, wird mit dem aktuellen Code 766 mal update() ausgeführt, und danach landet der User trotzdem in Feld B. Irgendwie scheint editCellAt() nicht das richtige zu sein. Ich habe auch schon mit setcolumnSelectionInterval(), setRowSelectionInterval() bzw. mit changeSelection() rumprobiert. Diese hatten jedoch gar keinen sichtbaren Einfluss.