I am creating an application in which any opened Jpanel or JFrame or Dialog should be closed on striking Escape button of the keyboard.
If I open any panel and direct hit Escape button that it is closed successfully without any problem.. but when I am trying to close it using Escape key after doing something in that JPanel or JFrame or Dialog, It is unable to close.
Please assist me if I am doing any thing wrong
Thanks in advance...
My method is
public static void addKeyBinding(JComponent c, final Object promptControl) {
         debugLogger.debug("Start Escape Key Binding ");
         Action escape = new AbstractAction() {
             {
                 putValue(NAME, "escape");
             }
             public void actionPerformed(ActionEvent e) {
                 try {
                     JComponent source = (JComponent) e.getSource();
                     Window window = SwingUtilities.getWindowAncestor(source);
                     window.dispose();
                     Dialog dialog = (Dialog) source.getFocusCycleRootAncestor();
                     dialog.dispose();
                     debugLogger.debug("source = " + source.getClass().getName() 
                             + "\n"
                             + "source.focusCycleRootAncestor = "
                             + source.getFocusCycleRootAncestor().getClass().getName());
                 } catch (Exception ex) {
                     errorLogger.error("Exception caught while closing the window." + x.toString());
                 }
             }
         };
         Object name = escape.getValue(Action.NAME);
         c.getInputMap().put(KeyStroke.getKeyStroke("ESCAPE"), name);
         c.getActionMap().put(name, escape);
         debugLogger.debug("End Escape Key Binding ");
     }
 
     
     
     
    