Definir extensão de salvamento padrão com o JFileChooser

Estou tentando salvar um arquivo usandoJFileChooser. No entanto, parece que estou tendo alguns problemas com isso. Aqui está meu código:

    if (e.getSource() == saveMenu) {

        JFileChooser chooser = new JFileChooser();
        chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

        FileNameExtensionFilter xmlFilter = new FileNameExtensionFilter("xml files (*.xml)", "xml");
        // add filters
        chooser.addChoosableFileFilter(xmlFilter);
        chooser.setFileFilter(xmlFilter);

        int result = chooser.showSaveDialog(Simulation.this);

        if (result == chooser.APPROVE_OPTION) {
            writeToXML(chooser.getSelectedFile());
        }

    }

Isso não força o arquivo a ter um.xml extensão, então eu tentei usar o seguinte código para forçar o arquivo a ser salvo com a extensão .xml

     OutputFormat format = OutputFormat.createPrettyPrint();
     format.setEncoding("UTF-8");
     XMLWriter xmlWriter = null;
     try {              
         xmlWriter = new XMLWriter(new OutputStreamWriter(
                 new FileOutputStream(f+".xml"), "UTF8"),
                 format);

No entanto, com isso eu não posso impedir que o usuário escrevaxpto.xml noJFileChooser e se eles fizerem isso, o arquivo terá "duas extensões": será um arquivo chamadoxpto.xml.xml

Então minhas perguntas são:

Como posso fazer oJFileChooser salvar um arquivo xml por padrão?Se o usuário inserir um nome de arquivo como xpto.xml, como posso salvá-lo como xpto.xml e não xpto.xml.xml?

questionAnswers(5)

yourAnswerToTheQuestion