Se si vuole fare in modo che in una JTextArea:
  • CTRL+INVIO inserisca un newline
  • INVIO da solo faccia "qualcosa" di particolare

si può fare così:

codice:
import java.awt.event.*;
import javax.swing.*;
import javax.swing.text.*;

....

Keymap keyMap = textArea.getKeymap ();

keyMap.addActionForKeyStroke (KeyStroke.getKeyStroke (KeyEvent.VK_ENTER, InputEvent.CTRL_DOWN_MASK),
                              new DefaultEditorKit.InsertBreakAction ());
keyMap.addActionForKeyStroke (KeyStroke.getKeyStroke (KeyEvent.VK_ENTER, 0),
                              new EnterAction ());


....

private class EnterAction extends AbstractAction
{
    public void actionPerformed (ActionEvent e)
    {
        // ..... fai qualcosa per INVIO ....
    }
}