![]() |
1
1
我认为如果JDialog不扩展它是不可能的。 您可以使用joptionpane.showOptionDialog()(或者可能是其他show方法之一),传递您想要使用的jButton。 如果传递的选项是组件,则它们将呈现为普通的,因此可以执行以下操作:
|
![]() |
2
4
我能看到的最好方法是添加
为此,您需要
getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "CANCEL"); getRootPane().getActionMap().put("CANCEL", cancelButton.getAction());
否则,如果取消按钮的逻辑是通过
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(); } }); |
![]() |
3
2
单线解决方案
其中t是对话框中jtextfield等任何组件(jbutton除外)。 |
![]() |
4
1
你所要做的就是把动作监听器连接到按钮上,然后调用
|