protected void init(boolean modal, JComponent content, String[] options) { super.setModal(modal); m_modal = modal; this.setFocusTraversalPolicy( new LayoutFocusTraversalPolicy() { private static final long serialVersionUID = 1L; protected boolean accept(Component component) { return !(component instanceof HTMLView); } }); this.content = content; this.enableEvents(AWTEvent.WINDOW_EVENT_MASK); JPanel contentPane = (JPanel) this.getContentPane(); contentPane.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); contentPane.setLayout(new BorderLayout()); contentPane.add(content, BorderLayout.CENTER); contentPane.add(jPanelButtonFrame, BorderLayout.SOUTH); jPanelButtonFrame.setLayout(new FlowLayout(FlowLayout.CENTER)); setButtons(options); contentPane.setVisible(true); /* We enable the escape-key for executing the abortCmd. Many thanks to John Zukowski. <a href="http://www.javaworld.com/javaworld/javatips/jw-javatip72.html">Java-Tip 72</a> */ KeyStroke stroke = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0); contentPane.getActionMap().put("abort", buttonListener); contentPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(stroke, "abort"); }