Originariamente inviato da UnderMaken
Ora il problema è che vorrei che all'invio del testo non solo la textarea si liberi del vecchio testo ma che il cursore del mouse torni all'inizio della textarea
ta.setText("");
Questo va bene per eliminare il testo ma il fatto è che con un KeyListener puoi solo sapere che qualcosa è stato premuto ma non puoi impedirlo. Nel tuo caso, il newline viene aggiunto dopo che hai pulito la textarea.
Invece di usare KeyListener, credo che sarebbe meglio usare un key binding, nella tua classe metti:
codice:
private class SendAction extends AbstractAction
{
public void actionPerformed (ActionEvent e)
{
// .... altro che vuoi fare .....
textarea.setText ("");
}
}
e poi in fase di inizializzazione della textarea:
codice:
Keymap km = textarea.getKeymap ();
km.addActionForKeyStroke (KeyStroke.getKeyStroke (KeyEvent.VK_ENTER, 0), new SendAction ());