Java 如何在jdialog的ok选项上设置actionlistener?

Java 如何在jdialog的ok选项上设置actionlistener?,java,swing,actionlistener,jdialog,Java,Swing,Actionlistener,Jdialog,嗨,我想在按下jdialog的ok按钮时触发一些动作,我知道你可以这样做 int rep =JOptionPane.showConfirmDialog(null, pangesfac, "Gestion des chambres a facturer", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE); if(rep == JOptionPane.OK_OPTION) {//actions to do} 但在我的例子中,

嗨,我想在按下jdialog的ok按钮时触发一些动作,我知道你可以这样做

int rep =JOptionPane.showConfirmDialog(null, pangesfac, "Gestion des chambres a facturer", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
    if(rep == JOptionPane.OK_OPTION) {//actions to do}

但在我的例子中,我希望外部控制器在按下ok按钮时处理必须完成的事情(我的代码由mvc构造)。那么,如何在“确定”按钮上设置动作列表器呢?

这是可能的,但并不像在“确定”按钮上添加动作列表器那样简单。您必须使用PropertyChangeListener

本页显示了一个示例:


但是,您可能需要重新考虑您的设计。您仍然可以将结果从JOptionPane传递到控制器,而无需捕获事件本身。

这是可能的,但并不像向“确定”按钮添加ActionListener那样简单。您必须使用PropertyChangeListener

本页显示了一个示例:


但是,您可能需要重新考虑您的设计。您仍然可以在不捕获事件本身的情况下将结果从JOptionPane传递给控制器。

是否可以在jdialog中创建除“确定”和“取消”按钮之外的另一个按钮来执行操作,然后关闭jdialog?您应该使用JOptionPane#showOptionDialog进行此操作。您可以提供字符串[]数组来设置选项标题。在我之前发布的页面上有一个例子,或者检查API@user2133558:或者使用定制的模态(如果需要)JDialog,而不是JOptionPane。1+向Ozzie询问答案。是否可以在jdialog中除“确定”和“取消”按钮之外再按一个按钮来执行操作,然后关闭jdialog?您应该使用JOptionPane#showOptionDialog来完成此操作。您可以提供字符串[]数组来设置选项标题。在我之前发布的页面上有一个例子,或者检查API@user2133558:或者使用定制的模态(如果需要)JDialog,而不是JOptionPane。1+向Ozzie询问答案。