如何在 Swing 中设置取消按钮JDialog
,即如果用户按下键盘上的“取消”键,其操作会自动执行的按钮?
通过以下方式向对方提供默认操作setDefaultButton
对话框根窗格的方法。
如果这有帮助,我正在寻找 WinForms 的类似物Form.CancelButton
财产。
我能看到的最好的方法是添加一个Action
到根窗格的操作映射,并使用根窗格的输入映射将该操作链接到转义键。
为此,您需要一个Action
。如果您的取消按钮的行为是作为操作实现的(即cancelButton.getAction() != null
),那么这将起作用:
getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "CANCEL");
getRootPane().getActionMap().put("CANCEL", cancelButton.getAction());
否则,如果取消按钮的逻辑是通过ActionListener
,你可以拥有actionPerformed()
的方法ActionListener
call a private void onCancel()
实现逻辑的方法,并注册调用相同方法的“取消”操作。
getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "CANCEL");
getRootPane().getActionMap().put("CANCEL", new AbstractAction(){
@Override
public void actionPerformed(ActionEvent e)
{
onCancel();
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)