- - PR -
JFileChooserのファイル保存ダイアログについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-02-22 21:19
こんにちは
初めて質問させていただきます。 現在ファイル保存の時に使うJFileChooserの挙動に悩んでいます。 やりたいことは、ファイル保存ダイアログでファイルタイプに2種類のフィルターを設定し、 ファイル名のところにデフォルトのファイル名を表示させておく、というものです。 ファイル名はダイアログ表示時に表示させることができたのですが、ファイルタイプを変えるとファイル名が消えてしまいます。 Windowsのダイアログのようにファイルタイプを変えてもファイル名は消さないようにしたいのですが…… ダイアログ表示時のファイル名設定は以下のような方法で行いました。 JFileChooser fileChooser = new JFileChooser(); BasicFileChooserUI ui = (BasicFileChooserUI) fileChooser.getUI(); ui.setFileName("test.txt"); 知っているかた、よろしくお願いします。 | ||||
|
投稿日時: 2005-02-22 22:54
パテ太と申します。
JFileChooser が複数ファイル選択不可の状態で setFileFilter メソッドが呼ばれると 選択ファイル名はクリアされるようです。 JFileChooser クラスを派生して setFileFilter メソッドの中で
ではだめでしょうか? | ||||
|
投稿日時: 2005-02-23 09:57
パテ太さん
なるほど、そういうことでしたか。 教えていただいた方法を使っていろいろいじってみます。 | ||||
|
投稿日時: 2005-02-23 11:18
この方法を使っていろいろやってみましたがまだダメです……
こことは別のタイミングでファイル名が消されているようですね。 もう少し探してみます。 | ||||
|
投稿日時: 2005-02-23 16:51
パテ太です。
ソースをもう少し追ってみたのですが JChooseFilter#setFileFilter が呼び出された直後に ファイル名がクリアされているようです。 大間違いな情報を投稿してしまって大変申し訳ありませんでした。 ・・・ということで JFileChooser に PropertyChangeListener を登録して PropertyChangeEvent が fileFilterChanged だった時に BasicFileChooserUI#setFileName で 書き換えるというのはだめでしょうか? (前回の投稿が大間違いだったので今回も あまり期待しないでいただきたいのですが・・・すみません。) いくつか補足ですが
| ||||
|
投稿日時: 2005-02-23 19:10
パテ太さん
さっそくpropertyChangeからBasicFileChooserUI#setFileNameを使ってみましたがダメでした…… JFileChooser#setSelectedFileを使ってセットすると、すでに同名ファイルがあるばあいは そのファイル選択まではしてくれますがファイル名までは空のままでした。 で プロジェクトで相談した結果、「これはswingの仕様だからしょうがない」ということで落ち着きそうですw でも まだ何か方法あるような気がするので、個人的に追ってみようと思います。 ありがとうございました。 | ||||
|
投稿日時: 2005-02-24 15:03
beco と申します。
私も以前のプロジェクトでFileChooserを使用していろいろ不都合がありました。 Swingの仕様ではWindowsユーザーの感覚と異なる動きが多いように感じます。 AWTの"FileDialog"を使用したところ比較的使いやすいように感じます。 検討されてみてはいかがでしょうか? |
1