Swing JFC Java

import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
public class Main {
  public static void main(String[] argv) throws Exception {
    final Action action = new AbstractAction("Action Name") {
      public void actionPerformed(ActionEvent evt) {
        System.out.println("action");
      }
    };
   
    JFrame frame = new JFrame();
    JButton button = new JButton(action);
    JTextField textfield = new JTextField();
    textfield.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke("F2"),
        action.getValue(Action.NAME));
    textfield.getActionMap().put(action.getValue(Action.NAME), action);
  }
}