Here you can find the source of closeOnKeyStroke(JRootPane rootPane, KeyStroke keyStroke)
private static void closeOnKeyStroke(JRootPane rootPane, KeyStroke keyStroke)
//package com.java2s; //License from project: Open Source License import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.WindowEvent; public class Main { private static final Action CLOSE_ACTION = new AbstractAction() { public void actionPerformed(ActionEvent e) { Window window = SwingUtilities.getWindowAncestor((Component) e.getSource()); // Dispatch an event so it's as if the window's close button was clicked. // The client has to set up the right behavior for that case. window.dispatchEvent(new WindowEvent(window, WindowEvent.WINDOW_CLOSING)); }//from ww w . java 2s .c om }; public static void closeOnKeyStroke(JFrame frame, KeyStroke keyStroke) { closeOnKeyStroke(frame.getRootPane(), keyStroke); } private static void closeOnKeyStroke(JRootPane rootPane, KeyStroke keyStroke) { final String CLOSE_ACTION_NAME = "com.jakeapp.gui.swing.helpers.GuiUtilities.CloseFrameOnKeyStroke"; rootPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(keyStroke, CLOSE_ACTION_NAME); rootPane.getActionMap().put(CLOSE_ACTION_NAME, CLOSE_ACTION); } }