title: Allowing the "Enter" key to press the submit button, as opposed to only using MouseClick
body: <p>I'm learning Swing class now and everything about it. I've got this toy program I've been putting together that prompts for a name and then presents a JOptionPane with the message "You've entered (Your Name)".
  The submit button I use can only be clicked on, but I'd like to get it to work with the Enter button too. I've tried adding a KeyListener, as is recommended in the Java book I'm using (Eventful Java, Bruce Danyluk and Murtagh).</p>
  
  <p><img src="https://i.stack.imgur.com/XNRkS.jpg" alt="NamePrompt">
  <img src="https://i.stack.imgur.com/wnBkE.jpg" alt="enter image description here"></p>
  
  <p>This is my code:</p>
  
  <pre><code>import java.awt.BorderLayout;
  import java.awt.event.ActionEvent;
  import java.awt.event.ActionListener;
  
  import javax.swing.JButton;
  import javax.swing.JFrame;
  import javax.swing.JLabel;
  import javax.swing.JPanel;
  import javax.swing.JTextField;
  
  
  public class NamePrompt extends JFrame{
  
  
      private static final long serialVersionUID = 1L;
  
      String name;
  
      public NamePrompt(){
  
          setLayout(new BorderLayout());
  
          JLabel enterYourName = new JLabel("Enter Your Name Here:");
          JTextField textBoxToEnterName = new JTextField(21);
          JPanel panelTop = new JPanel();
          panelTop.add(enterYourName);
          panelTop.add(textBoxToEnterName);
  
          JButton submit = new JButton("Submit");
          submit.addActionListener(new SubmitButton(textBoxToEnterName));
          submit.addKeyListener(new SubmitButton(textBoxToEnterName));
          JPanel panelBottom = new JPanel();
          panelBottom.add(submit);
  
          //Add panelTop to JFrame
          add(panelTop, BorderLayout.NORTH);
          add(panelBottom, BorderLayout.SOUTH);
  
          //JFrame set-up
          setTitle("Name Prompt Program");
          setDefaultCloseOperation(EXIT_ON_CLOSE);
          pack();
          setLocationRelativeTo(null);
  
  
      }
  
  
  
      public static void main(String[] args) {
          NamePrompt promptForName = new NamePrompt();
          promptForName.setVisible(true); 
      }
  
  
  }
  </code></pre>
  
  <p>And this is the actionListener, keyListener class:</p>
  
  <pre><code>import java.awt.Component;
  import java.awt.event.ActionEvent;
  import java.awt.event.ActionListener;
  import java.awt.event.KeyEvent;
  import java.awt.event.KeyListener;
  
  import javax.swing.JFrame;
  import javax.swing.JOptionPane;
  import javax.swing.JTextField;
  
  
  public class SubmitButton implements ActionListener, KeyListener {
  
      JTextField nameInput;
  
  
      public SubmitButton(JTextField textfield){
          nameInput = textfield;
      }
  
      @Override
      public void actionPerformed(ActionEvent submitClicked) {
  
          Component frame = new JFrame();
          JOptionPane.showMessageDialog(frame , "You've Submitted the name " + nameInput.getText());
      }
  
      @Override
      public void keyPressed(KeyEvent e) {
          if (e.getKeyCode()==KeyEvent.VK_ENTER){
              System.out.println("Hello");
          }
          Component frame = new JFrame();
          JOptionPane.showMessageDialog(frame , "You've Submitted the name " + nameInput.getText());
  
      }
  
      @Override
      public void keyReleased(KeyEvent arg0) {
          // TODO Auto-generated method stub
  
      }
  
      @Override
      public void keyTyped(KeyEvent arg0) {
  
      }
  }
  </code></pre>