Rabbitman14
Rabbitman14

Reputation: 331

How to get a JTextField to respond to the enter key

So I want to get a JTexField to put the text in it into a JTextArea when the enter key is pressed with the cursor in it. Can anyone help?

Upvotes: 2

Views: 22315

Answers (2)

richard ordoñez
richard ordoñez

Reputation: 71

    JTextArea myJTextArea = new JTextArea();
    myJTextArea.setBounds(200, 15, 258, 28);
    myJPanel.add(myJTextArea);

    JTextField myJTextField = new JTextField();
    myJTextField.setBounds(15, 15, 130, 28);
    myJPanel.add(myJTextField);
    myJTextField.addKeyListener(new KeyAdapter() {
        @Override
        public void keyPressed(KeyEvent e) {
            if(e.getKeyCode() == KeyEvent.VK_ENTER) {
                myJTextArea.setText(myJTextField.getText());
            }
        }
    });

Upvotes: 0

Reimeus
Reimeus

Reputation: 159874

Forget about using KeyListener for Swing components.

This listener was designed for use with AWT components does not provide a reliable interaction mechanism for JTextComponents.

Use an ActionListener instead - on the vast majority of systems an ActionEvent is dispatched by the JTextField when enter is pressed.

myTextField.addActionListener(new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent e) {
       myTextArea.append(myTextField.getText() + "\n");
    }
});

Upvotes: 16

Related Questions