come salvi? Questo non vuole assolutamente essere un esempio di buona programmazione... ma il file viene salvato, e mantiene blu e grassetto.
codice:
import java.awt.*;
import java.io.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.text.*;
import javax.swing.text.html.*;
/**
 *
 * @author Andrea
 */
public class JTextPaneTest extends JFrame {
    
    private String text = "Nel mezzo del cammin di nostra vita\n" +
            "mi ritrovai per una selva oscura\n"+
            "che la diritta via era smarrita";
    
    private JTextPane textPane = new JTextPane();
    private JButton save = new JButton("SAVE");
    private String filePath = "C:/Users/Andrea/Desktop/savefile.doc";
    private Document document;
    
    private class SaveAction implements ActionListener {
        
        public void actionPerformed (ActionEvent ae) {
            StyledDocument doc = (StyledDocument)textPane.getDocument();                 
            HTMLEditorKit kit = new HTMLEditorKit();                
            BufferedOutputStream out;
            try {
                 out = new BufferedOutputStream(new FileOutputStream(filePath));
                 kit.write(out, doc, doc.getStartPosition().getOffset(), doc.getLength());
                 out.flush();
                 out.close();
            }
            catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    
    private Document initDoc() {
        document = new DefaultStyledDocument();        
        SimpleAttributeSet attrs = new SimpleAttributeSet();
        
        attrs.addAttribute(StyleConstants.CharacterConstants.Foreground, Color.BLUE);
        attrs.addAttribute(StyleConstants.CharacterConstants.Bold, Boolean.TRUE);
        try {
            document.insertString(0, text, attrs);
        }
        catch (Exception e) {
            return null;
            //e.printStackTrace();
        }
        return document;        
    }
        
    public JTextPaneTest() {
        super("Test di salvataggio");
        this.setSize(400,400);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        textPane.setDocument(this.initDoc());
        
        this.getContentPane().add(new JScrollPane(textPane), BorderLayout.CENTER);        
        this.getContentPane().add(save, BorderLayout.SOUTH);
        
        save.addActionListener(new SaveAction());
        this.setVisible(true);
    }
    
    public static void main (String[] args) {
        new JTextPaneTest();
    }
}