2013-09-02 16 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: 
} 

Merhaba çocuklar için java seçicileri .... ben fileChooser.setAcceptAllFileFilterUsed(false); ayarlayarak bir dosya filtresinde dosyaları filtrelemek için çalışıyorum. "Tüm dosyalar" seçeneği FileChooser'dan kayboluyor, ancak PDF belgelerinden, ms Office'ten veya resimlerden bir seçenek seçmediğiniz sürece tüm dosyalar görünür durumda kalır. Dosya seçiciyi açtıktan sonra yalnızca 3 özel filtremde olmasını istiyorum.belirli dosyalar

+1

Kullanım 'setFileFilter (FileFilter filtre)' varsayılan bir filtre ayarlayın. – BlackBox

+0

[Dosya seçici eğitici] 'yi (http://docs.oracle.com/javase/tutorial/uiswing/components/filechooser.html) incelediniz mi? Dosya filtresinin yanı sıra "FileView" kullanımını da açıklar .. BTW - Daha iyi bir yardım için daha önce bir [SSCCE] yayınlayın (http://sscce.org/). –

+0

Teşekkürler ..... varsayılan filtre eklenmiş dosya çalıştıChooser.setFileFilter (yeni FileNameExtensionFilter ("PDF Belgeleri", "pdf")); – julihx

cevap

12

, sen kesinlikle en yaygın bulunan resim dosyaları görüntülemek, gibi bir şey kullanmak için JFileChooser filtrelemek istiyorsanız İşte bir örnek Bu:

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

ilk bağımsız (altta seçimi üzerine görüntülenen Nelerin) tanımı ve ikinci argüman gayri dosya uzantıları olduğunu. Benim durumumda

1

FileChooser iletişim kutusuna izin verilen uzantıları eklemek için FileNameExtensionFilter iletişim kutusunu kullanabilirsiniz. Daha fazla bilgi için

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

, Javadocs bakınız: Örneğin FileNameExtensionFilter

0

, ben (yanlış) setAcceptAllFileFilterUsed işleri yapmak yöntemle

addChoosableFileFilter(...); 

diğer tüm aramalar sonrasında

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

koymak zorunda kaldı. yüklendiğinde

0

Bu java8.1 içinde çalışıyor

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); 
İlgili konular