2013-09-02 21 views
12
private void openMenuActionPerformed(java.awt.event.ActionEvent evt) { 

    DBmanager db = new DBmanager(); 
    if (!db.getCurrentUser().equals("Admin")) { 
     JOptionPane.showMessageDialog(this, "You are Not Allowed to Run Applications"); 
     JFileChooser fileChooser = new JFileChooser(); 
     fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY); 
     fileChooser.addChoosableFileFilter(new FileNameExtensionFilter("PDF Documents", "pdf")); 
     fileChooser.addChoosableFileFilter(new FileNameExtensionFilter("MS Office Documents", "docx", "xlsx", "pptx")); 
     fileChooser.addChoosableFileFilter(new FileNameExtensionFilter("Images", "jpg", "png", "gif", "bmp")); 
     fileChooser.setAcceptAllFileFilterUsed(false); 
     int returnVal = fileChooser.showOpenDialog(this); 

     if (returnVal == JFileChooser.APPROVE_OPTION) { 
      File file = fileChooser.getSelectedFile(); 

      if (Desktop.isDesktopSupported()) { 
       try { 
        Desktop.getDesktop().open(file); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } 
     } 
    } else if (db.getCurrentUser().equals("Admin")) { 
     JFileChooser fileChooser = new JFileChooser(); 
     fileChooser.setAcceptAllFileFilterUsed(true); 
     int returnVal = fileChooser.showOpenDialog(this); 
     if (returnVal == JFileChooser.APPROVE_OPTION) { 
      File file = fileChooser.getSelectedFile(); 
      if (Desktop.isDesktopSupported()) { 
       try { 
        Desktop.getDesktop().open(file); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } 
     } 
    }// TODO add your handling code here: 
} 

こんにちは....私はfileChooser.setAcceptAllFileFilterUsed(false);を設定してファイルフィルタでファイルをフィルタリングしようとしています。 FileChooserから「すべてのファイル」オプションが表示されなくなりますが、PDFドキュメント、msオフィスまたは画像からオプションを選択しないかぎり、すべてのファイルが表示されます。ファイル選択を開くと、3つのカスタムフィルタのみが必要です。javaのファイルチューザを特定のファイルに制限する方法

+1

で正常に動作します。 – BlackBox

+0

[ファイルチューザチュートリアル](http://docs.oracle.com/javase/tutorial/uiswing/components/filechooser.html)を参照してください。それは、ファイルフィルタとFileViewの使用法を説明しています。BTW - より良いヘルプを早く得るために、[SSCCE](http://sscce.org/)を投稿してください。 –

+0

ありがとう.....デフォルトフィルターを追加しましたfileChooser.setFileFilter(new FileNameExtensionFilter( "PDF Documents"、 "pdf")); – julihx

答えて

12

たとえば、あなたはあなたのJFileChooserは、厳密に最も一般的に見られる画像ファイルを表示するようにフィルタリングする場合は、あなたのようなものを使用しますこれは:

FileNameExtensionFilter filter = new FileNameExtensionFilter("Image Files", "jpg", "png", "gif", "jpeg"); 
JFileChooser fileChooser = new JFileChooser(); 
fileChooser.setFileFilter(filter); 

最初の引数は説明(下側に選択時に表示されるもの)で、2番目の引数は非公式のファイル拡張子です。

1

FileNameExtensionFilterを使用して、FileChooserダイアログに許可された内線番号を追加できます。ここでは例です:

JFileChooser chooser = new JFileChooser(); 
FileNameExtensionFilter filter = new FileNameExtensionFilter(
    "JPG & GIF Images", "jpg", "gif"); 
chooser.setFileFilter(filter); 
が が

詳細情報については、Javadocを参照してください。FileNameExtensionFilter

0

は、私の場合、私はsetAcceptAllFileFilterUsed(偽)に動作させるために方法

addChoosableFileFilter(...); 

に他のすべてのコールの後に

setFileFilter(   
    new FileNameExtensionFilter("Default file filter", ...) 
); 

を入れていました。

0

これは、ロード時に `デフォルトのフィルタを設定するには、` setFileFilter(FileFilterのフィルター)を使用しjava8.1

JFileChooser dbfilechooser = new JFileChooser(); 
       FileNameExtensionFilter filter1 = 
         new FileNameExtensionFilter("xls","xls"); 
       FileNameExtensionFilter filter2 = 
         new FileNameExtensionFilter("xlsx", "xlsx"); 
       FileNameExtensionFilter filter3 = 
         new FileNameExtensionFilter("csv", "csv"); 

       dbfilechooser.addChoosableFileFilter(filter1); 
       dbfilechooser.addChoosableFileFilter(filter2); 
       dbfilechooser.addChoosableFileFilter(filter3);