2017-05-30 11 views
0

私はjavaで簡単なダウンロードマネージャを作成しています。jFileChooser保存ボタンとキャンセルボタンが変更されました(保存はキャンセルされ、キャンセルは保存されます)Java

マックでコードを実行している場合、それは正常に動作しますが、私は、Windows 7でそれをテストするために行った、と私は、この問題を得た:

私は名前を付けて保存]をクリックした場合、それはC:\Users\Gui

へのパスを残します

私はキャンセルする]をクリックした場合、それは私が使用しているC:\Users\Gui\Documents

JFileChooser

コードに変更します:

JFileChooser f = new JFileChooser(); 
f.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); 
f.showSaveDialog(null); 
tfPath.setText(f.getCurrentDirectory().toString()); 

誰でもこの問題の解決方法を知っていますか? JFileChooser

+0

読む[showSaveDialogのドキュメント](http://docs.oracle .com/javase/8/docs/api/javax/swing/JFileChooser.h tml#showSaveDialog-java.awt.Component-)、戻り値に細心の注意を払ってください。 – VGR

答えて

0

デフォルトのディレクトリは、私のためにその

Cを、ユーザ/例 ための書類です:Users \ユーザー\ Adeelアフマド\ドキュメント、それはあなたのCされますあなたのための :\ Users \ユーザーyour_login_account_nameドキュメント\ 使用JFileChooserのが

f.setCurrentDirectory("C:\somwhere"); 

を開いたときに、デフォルトのディレクトリを設定するにはsetcurrentディレクトリあなたのコードは、あなたを与えるだろうf.getCurrentDirectory()を呼び出し、 JFileChooser.DIRECTORIES_ONLYモードでディレクトリを選択するときに使用しているディレクトリの親ディレクトリ。あなたはそれを保存するとき、それは

その親ディレクトリを取得し、また、あなたは、定数と比較することができますintを返しJFileChooser.showSaveDialog、ユーザーの保存選択またはキャンセル知ることができるので、これはあなたがC:\Users\Gui\Documentsを得ている理由である使用f.getSelectedFile()をしたいかもしれません JFileChooserの のユーザーが保存選択したか、(オプションを救う意味する) JFileChooser.CANCEL_OPTIONまたはJFileChooser.APPROVE_OPTIONを使用してキャンセルする場合は、のベース上の任意のアクションを取ることができ

JFileChooser f = new JFileChooser(); 
f.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); 
f.setCurrentDirectory(new File("D:\\")); 
int result=f.showSaveDialog(null); 
if(result==JFileChooser.APPROVE_OPTION) 
tfPath.setText(f.getCurrentDirectory().toString()); 
関連する問題