1
いくつかの入力フィールドでConfirmDialogを表示しています。保存に失敗すると(検証が失敗する)、私はMessageDialogボックスを表示したいが、ConfirmDialogボックスを消したくない。これはどうすればいいですか?以下はJOptionPane.showConfirmDialogボックスが閉じるのを防ぐ方法
(それはイベントハンドラだとして、私はこの方法でボタンをクリックしたとき)ConfirmDialogを開くために、私のactionPerformedメソッドです
@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");
}
}
}
ダイアログ( 'result')の値は、それを閉じた後にのみ設定されるので、これは不可能です。あなたは 'Dialog'コンテナを使ってカスタムダイアログを使うことを検討すべきです。 – Mordechai