我正在显示带有一些输入字段的ConfirmDialog。当保存失败(验证失败)时,我想显示一个MessageDialog框,但我不希望ConfirmDialog框消失。我该怎么做?
下面是我的actionPerformed方法来打开ConfirmDialog(当我点击一个带有此方法的按钮作为事件处理程序时)
@Override
public void actionPerformed(ActionEvent e) {
int result = JOptionPane.showConfirmDialog(null, panel, "New transaction",
JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
if (result == JOptionPane.OK_OPTION) {
// save transaction
Transaction transaction = new Transaction();
// ...
if (transaction.save()) {
// close the ConfirmDialog is OK, save was successful
} else {
// don't close the ConfirmDialog, save failed
JOptionPane.showMessageDialog(panel, "Please fix the errors");
}
}
}
答案 0 :(得分:1)
您无法使用JOptionPane类的静态方法来创建对话框。
您需要创建自己的对话框,然后使用JOptionPane作为对话框的contentPane。
阅读Stopping Automatic Dialog Closing上Swing教程中的部分,了解如何完成此操作的示例代码。