2013-04-02 12 views
22

Ich versuche, meinen Kontakt in meiner Tabelle zu speichern, aber Filechosser immer auf alle Datei setzen. ist es so, ich kann es nur TXT akzeptieren und es als Standard oder die einzige Option festlegen.Wie mache ich jfilechooser nur akzeptieren. 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(); 
      } 
     } 
    } 
}); 

Antwort

54

Sie benötigen einen Filter hinzuzufügen:

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

Sollte es 'nicht' setFileFilter (...)? –

+0

der Code funktioniert, aber ich muss immer noch TXT-Erweiterung an das Ende der Datei eingeben. gibt es eine Möglichkeit, es als .txt standardmäßig zu speichern –

+1

Nach dem Aufruf von 'File file = filesave.getSelectedFile();', können Sie überprüfen, ob der Dateiname die Erweiterung "txt" hat. Wenn nicht, erstellen Sie ein neues File-Objekt, das die Erweiterung enthält, und fahren mit 'new PrintWriter (file2);' fort (durch Erstellen eines neuen 'File'-Objekts wird die Datei nicht erstellt.) – Enwired

4

Sie könnten das tun, indem Sie FileFilter verwenden.

Erstellen Sie eine Filefilter mit den erforderlichen Bedingungen. Setzen Sie diesen Dateifilter auf JFileChooser und starten Sie ihn.

9

Hier einige Beispiele

fileChooser.addChoosableFileFilter(new FileNameExtensionFilter("Images", "jpg", "png", "gif", "bmp")); 
fileChooser.addChoosableFileFilter(new FileNameExtensionFilter("*.pdf", "pdf")); 
fileChooser.addChoosableFileFilter(new FileNameExtensionFilter("*.txt", "txt")); 
Verwandte Themen