--- src/core/org/apache/jmeter/gui/SavePropertyDialog.java (revision 1763872) +++ src/core/org/apache/jmeter/gui/SavePropertyDialog.java (working copy) @@ -31,11 +31,17 @@ import java.util.HashMap; import java.util.Map; +import javax.swing.AbstractAction; +import javax.swing.Action; +import javax.swing.InputMap; import javax.swing.JButton; import javax.swing.JCheckBox; +import javax.swing.JComponent; import javax.swing.JDialog; import javax.swing.JPanel; +import javax.swing.JRootPane; +import org.apache.jmeter.gui.action.KeyStrokes; import org.apache.jmeter.samplers.SampleSaveConfiguration; import org.apache.jmeter.util.JMeterUtils; import org.apache.jorphan.logging.LoggingManager; @@ -114,6 +120,26 @@ } }); } + + @Override + protected JRootPane createRootPane() { + JRootPane rootPane = new JRootPane(); + Action escapeAction = new AbstractAction("ESCAPE") { + /** + * + */ + private static final long serialVersionUID = 2208129319916921772L; + + @Override + public void actionPerformed(ActionEvent e) { + setVisible(false); + } + }; + InputMap inputMap = rootPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW); + inputMap.put(KeyStrokes.ESC, escapeAction.getValue(Action.NAME)); + rootPane.getActionMap().put(escapeAction.getValue(Action.NAME), escapeAction); + return rootPane; + } @Override public void actionPerformed(ActionEvent e) {