2013-04-02 12 views
22

Próbuję zapisać mój kontakt w moim stole, ale filechosser zawsze ustawiony na wszystkie pliki. jest sposób, w jaki mogę ustawić go tylko do akceptowania .txt i ustawić domyślny lub jedyną opcję.jak zrobić jfilechooser akceptować tylko .txt

savecontact.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
     JFileChooser filesave = new JFileChooser(); 
     int returnVal = filesave.showSaveDialog(Main.this); 
     if (returnVal == JFileChooser.APPROVE_OPTION) { 
      try { 
       File file = filesave.getSelectedFile(); 

       PrintWriter os = new PrintWriter(file); 
       os.println(""); 
       for (int col = 0; col < table.getColumnCount(); col++) { 
        os.print(table.getColumnName(col) + "\t"); 
       } 
       os.println(""); 
       os.println(""); 

       for (int row = 0; row < table.getRowCount(); row++) { 
        for (int col = 0; col < table.getColumnCount(); col++) { 
         os.print(table.getColumnName(col)); 
         os.print(": "); 
         os.println(table.getValueAt(row, col)); 
        } 
        os.println(""); 
       } 
       os.close(); 
       System.out.println("Done!"); 
      } catch (IOException e1) { 
       e1.printStackTrace(); 
      } 
     } 
    } 
}); 

Odpowiedz

54

Trzeba dodać filtr:

JFileChooser jf = new JFileChooser(); 
FileNameExtensionFilter filter = new FileNameExtensionFilter("TEXT FILES", "txt", "text"); 
jf.setFileFilter(filter); 
+2

Nie powinno być 'setFileFilter (...)'? –

+0

kod działa, ale nadal muszę wpisać rozszerzenie .txt na końcu pliku. czy istnieje sposób, w jaki mogę zapisać go jako .txt domyślnie –

+1

Po wywołaniu 'File file = filesave.getSelectedFile();', możesz sprawdzić, czy nazwa pliku ma rozszerzenie "txt". Jeśli nie, utwórz nowy obiekt File zawierający rozszerzenie, a następnie kontynuuj pracę z 'new PrintWriter (file2);' (Tworzenie nowego obiektu 'File' faktycznie nie tworzy pliku.) – Enwired

4

Możesz to zrobić, używając FileFilter.

Utwórz Filefilter z niezbędnymi warunkami. Ustaw ten filtr plików na JFileChooser i uruchom go.

9

Oto kilka przykładów

fileChooser.addChoosableFileFilter(new FileNameExtensionFilter("Images", "jpg", "png", "gif", "bmp")); 
fileChooser.addChoosableFileFilter(new FileNameExtensionFilter("*.pdf", "pdf")); 
fileChooser.addChoosableFileFilter(new FileNameExtensionFilter("*.txt", "txt")); 
Powiązane problemy