concerning the problem with the date field, I had a similar thing recently.
What I did was: extend javax.swing.DefaultCellEditor to a custom class, extend javax.swing.DefaultCellEditor.EditorDelegate (inner class) to a custom class, which overrides stopCellEditing() to check, if the value is a valid date. If yes, return true, if no return false to keep the field in editing mode.
You should check the Java source files, where/what you actually have to change.
This was not a very beautiful solution, but it did work.