Mega Code Archive

 
Categories / Java by API / Javax Swing
 

Extends JDialog (Press Escape Key to close a dialog)

import java.awt.Frame; import java.awt.event.ActionEvent; import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.InputMap; import javax.swing.JComboBox; import javax.swing.JComponent; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JRootPane; import javax.swing.KeyStroke; public class MainClass {   public static void main(final String args[]) {     JFrame frame = new JFrame();     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     frame.setSize(500, 300);     frame.setVisible(true);          EscapeDialog esc = new EscapeDialog(frame);     esc.setSize(200,200);     esc.setVisible(true);        } } class EscapeDialog extends JDialog {    public EscapeDialog(Frame owner) {      super(owner, true);     getContentPane().add(new JComboBox());   }    protected JRootPane createRootPane() {      JRootPane rootPane = new JRootPane();     KeyStroke stroke = KeyStroke.getKeyStroke("ESCAPE");     Action actionListener = new AbstractAction() {        public void actionPerformed(ActionEvent actionEvent) {          setVisible(false);       }      } ;     InputMap inputMap = rootPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);     inputMap.put(stroke, "ESCAPE");     rootPane.getActionMap().put("ESCAPE", actionListener);     return rootPane;   }  }