2014-05-13 1 views
1

jFileChooser를 사용하여 내 앱으로 만 이미지와 pdf를 가져오고 싶습니다. FileFilter를 사용하여 파일 형식을 필터링하려고했습니다. 그러나 그것은 효과가 없었습니다. 아무도 그것을 위해 몇 가지 샘플 코드를 제공 할 수 있습니다.FileFilter를 JFileChooser와 함께 사용하는 방법

+2

* "아무에게도 샘플 코드를 제공 할 수 있습니까?"* SO는 코드 팩토리가 아닙니다. 도움이 필요하면 약간의 노력을 보여주십시오. 1) [무엇을 시도 했습니까?] (http://www.whathaveyoutried.com/) 노력을 기울이면 다른 사람들이 도움을받을 수 있습니다. 2) 더 빨리 도움을 받으려면 [MCVE] (http://stackoverflow.com/help/mcve) (최소 완료 및 검증 가능한 예)를 게시하십시오. –

+1

죄송합니다. Andrew Thompson 님, 안녕하세요. –

답변

1

FileNameExtensionFilter와 함께 FileFilter를 사용할 수 있습니다. 여기 샘플 코드입니다.

JFileChooser chooser = new JFileChooser("."); 


    FileFilter type1 = new FileNameExtensionFilter("Images", "jpg", "png", "JPG", "PNG"); 
    FileFilter type2 = new FileNameExtensionFilter("PDF Documents", "pdf"); 
    FileFilter type3 = new FileNameExtensionFilter("All Files", "."); 


    chooser.addChoosableFileFilter(type1); 
    chooser.addChoosableFileFilter(type2); 
    chooser.addChoosableFileFilter(type3); 

    chooser.setFileFilter(type1); // Initial filter setting 
    chooser.setFileFilter(type2); 
    chooser.setFileFilter(type3); 

    chooser.setFileSelectionMode(JFileChooser.FILES_ONLY); 
    chooser.setAcceptAllFileFilterUsed(false); 

    int status = chooser.showOpenDialog(this); 
    if (status == JFileChooser.APPROVE_OPTION) { 
     File f = chooser.getSelectedFile(); 
     lblFileName.setText(f.toString()); 
     if (chooser.getFileFilter() == type1) { 
      //you can add code for file type 1 
     } else if (chooser.getFileFilter() == type2) { 
      //you can add code for file type 2 
     } 
    } 
+1

개체 비교에'=='을 사용하지 마십시오. (닫아야 할 불량한 질문을 반복해서 처리하는 경우에도) .equals (..)를 사용하십시오. –

+2

MacDaddy에 감사드립니다. 이것이 내가 기대하는 것입니다. –

+0

및 f.getName ??? 대신 f.toString() – mKorbel