2017-11-21 2 views
0

다른 확장자를 가진 파일을 만들 프로그램을 만들고 있습니다. 이를 위해 JFileChooser을 사용하고 있습니다. FileFilter에 원하는 내선 만 허용하도록 설정했지만 하나를 선택하더라도 파일 이름에 내선을 직접 추가해야합니다. 어떻게 해결할 수 있습니까? 많은 감사합니다!jFileChooser로 확장 추가

+0

문제가있는 곳을 확인할 수 있도록 질문과 함께 일부 코드를 추가하십시오. –

+0

시도 { 저장 = 새 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

관련 문제