Swing/FileAlreadyExistsDialog のバックアップ(No.2)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/FileAlreadyExistsDialog へ行く。
- 1 (2012-07-02 (月) 17:20:50)
- 2 (2012-07-02 (月) 19:30:40)
- 3 (2012-08-08 (水) 19:01:21)
- 4 (2012-12-08 (土) 06:58:42)
- 5 (2013-09-05 (木) 00:35:50)
- 6 (2013-12-06 (金) 15:26:11)
- 7 (2014-11-25 (火) 03:03:31)
- 8 (2014-11-26 (水) 02:24:29)
- 9 (2015-02-16 (月) 15:25:10)
- 10 (2016-11-18 (金) 12:12:57)
- 11 (2017-04-07 (金) 13:51:51)
- 12 (2017-11-18 (土) 14:04:41)
- 13 (2018-02-24 (土) 19:51:30)
- 14 (2019-04-03 (水) 19:38:56)
- 15 (2021-01-13 (水) 17:59:45)
- 16 (2023-07-12 (水) 17:14:28)
TITLE:JFileChooserを開いたままファイルの上書き警告ダイアログを表示する
Posted by aterai at 2012-07-02
JFileChooserを開いたままファイルの上書き警告ダイアログを表示する
JFileChooserで名前を付けて保存する場合、すでに存在するファイルを選択してセーブボタンを押すと上書き警告ダイアログを表示するように設定します。
- &jar;
- &zip;
サンプルコード
JFileChooser fileChooser = new JFileChooser() {
@Override public void approveSelection(){
File f = getSelectedFile();
if(f.exists() && getDialogType() == SAVE_DIALOG) {
String m = String.format(
"<html>%s already exists.<br>Do you want to replace it?",
f.getAbsolutePath());
int rv = JOptionPane.showConfirmDialog(
this, m, "Save As", JOptionPane.YES_NO_OPTION);
if(rv!=JOptionPane.YES_OPTION) {
return;
}
}
super.approveSelection();
}
};
View in GitHub: Java, Kotlin解説
上記のサンプルでは、ユーザーがSaveボタンをクリックした時に呼び出される JFileChooser#approveSelection() をオーバーライドし、選択されているファイルがすでに存在する場合は、上書きしても良いかを確認するConfirmDialogをJFileChooserを親にして呼び出しています。Yesの場合は、super.approveSelection() を実行して結果を返してJFileChooserを閉じる、Noの場合は、なにもせずにJFileChooserに戻ります。