Spacings And Carriage Returns
 
Hi everyone,
                    I currently have a JTextPane using a html document and
i am trying to serialize the html document contained in the JTextPane to
the disk but i have run into some problems.
                    One problem lets say for example if i were to press
the space bar five times and then type some text into the JTextPane and
serialize it, everything seems alright except that when i read back the
html document the space where i had pressed for five times has
dissappeared and the text that i typed in is just left justified.
                 Another problem i have lets say for example if i were to
press the carriage return five times and then type some text into the
JTextPane and serialize it, everything seems alright except that when i
read back the html document the carriage returns where i had pressed for
five times has dissappeared and the text that i typed in is just placed at
the top of the document in the JTextPane.
                     Why this is happening i am not sure but i am
providing a compilable example for you guys to see what actually the
problems that i am currently facing.
Here is the compilable example.
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*;
import javax.swing.text.html.*;
public class JHTML implements ActionListener
{
    JFrame fr = new JFrame ("Frame");
    JLabel Label1 = new JLabel("Label1                            ",
SwingConstants.RIGHT);
    JButton Button1 = new JButton("Load");
    JButton Button2 = new JButton("Save As");
    JFileChooser FileChooser1 = new JFileChooser();
    JFileChooser FileChooser2 = new JFileChooser();
    JTextPane TextPane1 = new JTextPane();
    StyleSheet ss = new StyleSheet();
    HTMLDocument htmldoc = new HTMLDocument(ss);
    JScrollPane ScrollPane1 = new JScrollPane(TextPane1,
ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
    ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
    HTMLEditorKit htmlkit = new HTMLEditorKit();
    Dimension Size1 = new Dimension();
    String SF = "";
    public void initialize ()
    {
        Container pane = fr.getContentPane();
        pane.setLayout(new FlowLayout());
        fr.setSize(250,300);
        fr.setLocation(300,300);
        fr.setBackground(Color.lightGray);
        TextPane1.setEditorKit(htmlkit);
        htmldoc = (HTMLDocument)htmlkit.createDefaultDocument();
        ss = htmldoc.getStyleSheet();
        TextPane1.setDocument(htmldoc);
        Size1.width = 500;
        Size1.height = 300;
        ScrollPane1.setPreferredSize(Size1);
        pane.add(ScrollPane1);
        pane.add(Button1);
        pane.add(Button2);
        pane.add(Label1);
        fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Button1.addActionListener(this);
        Button2.addActionListener(this);
        fr.pack();
        fr.setVisible(true);
    }
    public void open ()
    {
        if(FileChooser1.showOpenDialog(fr) != JFileChooser.APPROVE_OPTION)
        {
            return;
        }
        try
        {
            File file1 = FileChooser1.getSelectedFile();
            SF = file1.toString();
            FileInputStream in = new FileInputStream(SF);
            htmldoc = (HTMLDocument)htmlkit.createDefaultDocument();
            htmlkit.read(in, htmldoc, 0);
            ss = htmldoc.getStyleSheet();
            TextPane1.setDocument(htmldoc);
            in.close();
        }
        catch (Exception e)
        {
            Label1.setText("A document reading error has occured");
        }
    }
    public void saveas ()
    {
        if(FileChooser1.showSaveDialog(fr) != JFileChooser.APPROVE_OPTION)
        {
            return;
        }
        try
        {
            File file2 = FileChooser1.getSelectedFile();
            SF = (file2.toString() + ".html");
            FileOutputStream out = new FileOutputStream(SF);
            htmlkit.write(out, htmldoc, 0, htmldoc.getLength());
            out.close();
        }
        catch (Exception e)
        {
            Label1.setText("A document writing error has occured");
        }
    }
    public void actionPerformed(ActionEvent event)
    {
        JComponent b = (JComponent)event.getSource();
        if(b == Button1)
        {
            open();
        }
        else if(b == Button2)
        {
            saveas();
        }
    }
    public static void main(String args[])
    {
        JHTML a = new JHTML();
        a.initialize();
    }
}
My only idea i guess is that i must be serializing the document wrongly,
but i tried to yahoo but came up with nothing.
I hope someone knows why this is happening as already i am out of ideas.
Any help is greatly appreciated
Thank You
Yours Sincerely
Richard West