private void guardar() {
        String directori = main.getDirectori();

        try {
            directori = main.getCarpetaAvui(true);

            if (directori.equals("")) {
                directori = main.getDirectori();
            }
        } catch (IOException ex) {
        }

        JFileChooser chooser = new JFileChooser(directori);

        chooser.setAcceptAllFileFilterUsed(false);
        chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
        chooser.setFileFilter(new FileFilter());
        chooser.setMultiSelectionEnabled(false);

        int resultado = chooser.showSaveDialog(this);
        String msg;
        String title;
        if (resultado == JFileChooser.APPROVE_OPTION) {
            try {
                if (chooser.getSelectedFile().exists()) {
                    msg = "El fitxer ja existeix. El vol sobreescriure?";
                    title = "Sobreescriure";
                    resultado = JOptionPane.showConfirmDialog(this, msg, title, JOptionPane.YES_NO_OPTION);
                }

                if (resultado == JOptionPane.OK_OPTION) {
                    waitCursor();

                    main.guardar(chooser.getSelectedFile().getAbsolutePath());
                    modificat = false;
                }
            } catch (Exception ex) {
                msg = "Error guardant els fitxers";
                title = "Guardant";
                JOptionPane.showMessageDialog(this, msg, title, JOptionPane.ERROR_MESSAGE);
            } catch (StackOverflowError sof) {
                JOptionPane.showMessageDialog(this, "Hi ha hagut un problema", "", JOptionPane.ERROR_MESSAGE);
            } finally {
                defaultCursor();
            }
        }
    }