Preciso una cosa (prima sono stato frettoloso, perché pensavo ad un'altra situazione con JTextArea).
Un KeyListener su JTextArea lo puoi benissimo registrare e funziona anche senza problemi. Non è quello il punto (se non ti funziona, probabilmente c'è qualcosa che non va in quello che hai scritto, mostra il codice).
Se non fai qualcosa di particolare con l'evento (mi riferisco al fatto di "consumare" l'evento con e.consume() ) però l'invio fa anche la sua operazione di newline.

Il key binding in effetti è "a valle" di un key listener, insomma viene dopo ma permette di effettuare rimappature particolari come nel caso della discussione che ho linkato.