extends JDialog (Press Escape Key to close a dialog) : JDialog « javax.swing « Java by API






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;
  } 
} 



           
         
    
  








Related examples in the same category

1.new JDialog(Window owner, String title, ModalityType modalityType)
2.JDialog: setDefaultLookAndFeelDecorated(boolean defaultLookAndFeelDecorated)
3.JDialog: setModalityType(ModalityType type)