Wątek przeniesiony 2016-12-24 11:26 z Java przez bogdans.

domyślne rozszerzenie pliku w oknie savedialog

0

jak ustawić aby domyślnie przy wybraniu opcji zapisz jako pojawiało się rozszerzenie np. txt ?, przy poniższym kodzie mam automatycznie ustawione "wsztstkie pliki"

 JFileChooser fc = new JFileChooser();
        if (fc.showSaveDialog(null)==JFileChooser.APPROVE_OPTION)
        {
            File plik = fc.getSelectedFile();
            JOptionPane.showMessageDialog(null,"Zapisany plik to " + plik);
            try 
            {
                PrintWriter pw = new PrintWriter(plik);
                Scanner skaner = new Scanner(jTextArea1.getText());
                while(skaner.hasNext())
                {
                    pw.println(skaner.nextLine() + "\n");
                }
                pw.close();
            } 
            catch (FileNotFoundException e1) 
            {
                Logger.getLogger(Program.class.getName()).log(Level.SEVERE, null, e1);
            }
0

Serio? Nawet w dokumentacji masz example...
https://docs.oracle.com/javase/8/docs/api/javax/swing/JFileChooser.html

0

no dobra to mam, ale chodzi mi o autoamtyczne dodawanie rozszerzenia do pliku, tak aby użytkwnik miał za zadanie tylko wpisanie nazwy a rozszerzenie doda się samo, mam coś takiego jak poniżej, ale to tylko dodaję autoamtyczną informację z rozszerzeniem w okienku a nie do pliku

private void jMenuItemZapiszJakoActionPerformed(java.awt.event.ActionEvent evt) {                                                    
        JFileChooser fc = new JFileChooser();
        fc.setFileFilter(new FileNameExtensionFilter("Notatnik", "txt"));
       
        if (fc.showSaveDialog(null)==JFileChooser.APPROVE_OPTION)
        {
            File plik = fc.getSelectedFile();
            JOptionPane.showMessageDialog(null,"Zapisany plik to " + plik);
            
            try 
            {
                PrintWriter pw = new PrintWriter(plik);
                Scanner skaner = new Scanner(jTextArea1.getText());
                while(skaner.hasNext())
                {
                    pw.println(skaner.nextLine() + "\n");
                }
                pw.close();
            } 
            catch (FileNotFoundException e1) 
            {
                Logger.getLogger(Program.class.getName()).log(Level.SEVERE, null, e1);
            }
        }
0
  1. Komunikat
 JOptionPane.showMessageDialog(null,"Zapisany plik to " + plik);

wyświetlasz przedwcześnie, on powinien być na końcu sekcji try. Ja bym żadnego komunikatu o powodzenie nie wypisywał, wypisał bym natomiast komunikat o niepowodzeniu (w sekcji catch).
2. Celowo zapisujesz każde słowo w osobnej linii?
3. Do Ciebie należy dodanie ".txt" do nazwy pliku

File plik = fc.getSelectedFile();
String fileName = plik.getAbsolutePath();
if(!fileName.toLowerCase().endsWith(".txt")){
    plik = new File(fileName + ".txt");
} 
0

dzięki, działa

1 użytkowników online, w tym zalogowanych: 0, gości: 1