我试图在按ESC键时接受对话框并按ENTER键接受。 所以我必须建立一个超“CloseableDialog”使用输入/ ActionMap中是这样的:打开子对话框后InputMap/ActionMap不起作用
getRootPane().getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "accept");
getRootPane().getActionMap().put("accept", acceptAction);
getRootPane().getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "cancel");
getRootPane().getActionMap().put("cancel", cancelAction);
现在我建延伸CloseableDialog几个对话框。它的工作原理与第一次一样(按ESC时接受,按ENTER时接受),但是当我打开一个子对话框(对话框中的对话框)时,只有子对话框可以通过按ESC键关闭(ESC - >子对话框关闭,其他对话框可见 - ESC->没有发生)。
任何想法?
我认为,diposed SubDialog仍然是其他对话框的输入,但我不确定。
我忘了提及:关闭子对话框后,单击对话框也不起作用。我试图通过requestFocus()将焦点设置到对话框,但它不起作用。 – user2212120