2017-11-21 28 views
0

私はさまざまな拡張子のファイルを作成するプログラムを作成しています。そのために、私はJFileChooserを使用しています。私はFileFilterに自分が望む拡張子だけを受け入れるように設定しましたが、私が選択したときには、ファイル名の拡張子を自分で追加する必要があります。それをどうすれば解決できますか?どうもありがとう!jFileChooserで拡張子を追加する

+0

問題のある箇所を確認できるように、問題のあるコードを追加してください。 –

+0

try { 保存=新しいJFileChooser(); int ReturnValue = Save.showSaveDialog(null); if(ReturnValue == JFileChooser.APPROVE_OPTION){ Base = Save.getSelectedFile(); DB =新しいDatabaseBuilder(ベース) .setFileFormat(Database.FileFormat.V2010) .create(); } } catch(HeadlessException | IOException P){ System.out.println( "エラー:" + P); System.out.println( "エラーが発生しました:P"); } – HaroldFinch

答えて

0

基本的には、ユーザーがダイアログを閉じると、拡張機能を自分で追加する必要があります。

この例では、ユーザーが ".foo"または ".bar"で終わるファイルを指定することができ、ユーザーがそうしなかった場合はその拡張子を追加します。

JFileChooser fileChooser = new JFileChooser(); 
fileChooser.setMultiSelectionEnabled(false); 
fileChooser.removeChoosableFileFilter(fileChooser.getAcceptAllFileFilter()); 
fileChooser.setFileFilter(new FileNameExtensionFilter("Files ending in .foo", "foo")); 
fileChooser.setFileFilter(new FileNameExtensionFilter("Files ending in .bar", "bar")); 


int option = fileChooser.showSaveDialog(null); 
if (option == JFileChooser.APPROVE_OPTION) { 
    File file = fileChooser.getSelectedFile(); 

    if (file!=null) { 
    FileFilter fileFilter = fileChooser.getFileFilter(); 
    if (fileFilter instanceof FileNameExtensionFilter && ! fileFilter.accept(file)) { 
     // if the filter doesn't accept the filename, that must be because it doesn't have the correct extension 
     // so change the extension to the first extension offered by the filter. 
     FileNameExtensionFilter fileNameExtensionFilter = (FileNameExtensionFilter) fileFilter; 
     String extension = fileNameExtensionFilter.getExtensions()[0]; 

     String newName = file.getName() + "." + extension; 
     file = new File(file.getParent(), newName); 

    } 

    System.out.println("The selected file is: " + file.getAbsolutePath()); 
    } 
} 
+0

ありがとうございますが、私は自分自身でエクステンションを追加する必要があります。私はJacksessライブラリを使ってMS Accessデータベースを作成しようとしています。 – HaroldFinch

関連する問題