Total members 10261 | Gratitudes |It is currently Wed May 23, 2012 9:59 am Login / Join Codemiles


All times are UTC [ DST ]




Post new topic Reply to topic  Quick reply  [ 1 post ] 
Author Question
 Question subject: the text file i saved all in one line. How can i solve it?
PostPosted: Sat May 23, 2009 4:21 pm 
Offline
Newbie
User avatar

Joined: Fri Mar 20, 2009 4:03 am
Posts: 21
Location: Indonesia
Has thanked: 0 time
Have thanks: 0 time

When you click save in this program , it is saved nicely but the txt file being saved is all in one line. How can i overcome this matter? Just FYI, when anyone try to save, dun forget the file extension (*.txt)
Code:
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
import javax.swing.filechooser.*;

import javax.swing.text.*;
import java.io.*;

/**
* Class <code>FileChooser</code> is used to demo opening and closing file.
*
* @author  Mely
* @version 1.73, 03/30/06
* @see     javax.swing.filechooser.JFileChooser;
* @since   JDK1.0
*/
public class FileChooser extends JFrame {

    private JTextArea log;
    private static final JFileChooser fc = new JFileChooser();
    private static final String txt = ".txt";

    static {
        //Add a custom file filter and disable the default
        //(Accept All) file filter.
        //fc.addChoosableFileFilter(new TxtFilter());
        fc.setAcceptAllFileFilterUsed(false);
    }

    private String newline = System.getProperty("line.separator");

    public FileChooser() {
        super("FileChooserDemo");

        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setSize(400, 200);


        JButton openButton = new JButton("Open", new ImageIcon("images/open.gif")); //Create the open button and add image
        openButton.addActionListener(new OpenListener()); //Adds action listener to the open button

        JButton saveButton = new JButton("Save", new ImageIcon("images/save.gif")); //Create the save button and add image
        saveButton.addActionListener(new SaveListener()); //Adds action listener to the save button
        Dimension btnSize = new Dimension(100, 30);
        openButton.setPreferredSize(btnSize);
        saveButton.setPreferredSize(btnSize);
        JPanel buttonPanel = new JPanel(); //Create a panel
        buttonPanel.add(openButton); //Add the open button to the panel
        buttonPanel.add(saveButton); //Add the save button to the panel

        log = new JTextArea(5,20); //Create the text area
        log.setMargin(new Insets(5,5,5,5)); //Set the margins
        JScrollPane logScrollPane = new JScrollPane(log);

        Container contentPane = getContentPane();
        contentPane.add(buttonPanel, BorderLayout.PAGE_START); //Add the buttons to the panel
        contentPane.add(logScrollPane, BorderLayout.CENTER); //Add the text area to the panel
    } //end of constructor


    /**
     * Find the hosting frame, for the file-chooser dialog.
     *
     * @return  a frame of this parent.
     */
    protected Frame getFrame() {
        for (Container p = getParent(); p != null; p = p.getParent())
            if (p instanceof Frame)
                return (Frame) p;
        return null;
    }


    private class OpenListener implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            int returnVal = fc.showOpenDialog(FileChooser.this);

            if (returnVal == JFileChooser.APPROVE_OPTION) {
                File file = fc.getSelectedFile();

                log.append("Opening: " + file.getName() + "." + newline); //Display "Opening" and the retrieved file name in the text area
            } else
                log.append("Open command cancelled by user." + newline); //Display this command in the text area
        }
    } //end of class OpenListener

    private class SaveListener implements ActionListener {

        public void actionPerformed(ActionEvent e) {
            int returnVal = fc.showSaveDialog(FileChooser.this);

            if (returnVal == JFileChooser.APPROVE_OPTION) {
                File file = fc.getSelectedFile();

                if (file.exists()) {
                    //default icon, custom title
                    int n = JOptionPane.showConfirmDialog(
                        getFrame(),
                        "File already exists. Would you like to override it?",
                        "Override File?",
                        JOptionPane.YES_NO_OPTION);

                    if (n == JOptionPane.NO_OPTION) {
                        //log.append("Save command cancelled by user. User do not wish to override it." + newline); //Display this command in the text area
                        JOptionPane.showMessageDialog(getFrame(),"Save command cancelled by user. User do not wish to override it.");
                        return;
                    }
                } //end of if (file.exists())
                boolean isAcceptedExtension = fc.accept(file);

                if (!isAcceptedExtension) {
                    //Custom button text
                    Object[] options = {"Yes, please",
                                        "No, thanks",
                                        "Don't do anything"};
                    int n = JOptionPane.showOptionDialog(getFrame(),
                        "The file name does not have '.txt' extension.\n\n"
                        + "Would you like the program to append '.txt' to the filename on behalf of you?\n\n"
                        + String.format("<html><body>Changing filename from <span style='font-family: monospace'><font color=#ff0000>'%s'</font> to <font color=#ff0000>'%s.txt'</font></span></body></html>\n", file.getPath(), file.getPath()),
                        "A Confirmation Question",
                        JOptionPane.YES_NO_CANCEL_OPTION,
                        JOptionPane.QUESTION_MESSAGE,
                        null,
                        options,
                        options[2]);


                    if (n == JOptionPane.YES_OPTION) {
                        file = makeTxt(file);
                        isAcceptedExtension = true;
                    }
                } //end of if (!isAcceptedExtension)

                if (isAcceptedExtension) {
                    Thread saver = new FileSaver(file, log.getDocument());
                    saver.start();

                    //log.append("Saving: " + file.getName() + "." + newline); //Display "Saving" and the retrieved file name in the text area
                    JOptionPane.showMessageDialog(getFrame(),"Saving : " + file.getName() + ".");
                } else
                    //log.append("Saving Failed: " + file.getName() + " does not END with (.txt)." + newline); //Display "Saving" and the retrieved file name in the text area
                    JOptionPane.showMessageDialog(getFrame(),"Saving Failed....");
            } else
                log.append("Save command cancelled by user." + newline); //Display this command in the text area
        }
    } // end of class SaveListener

    public static void main(String s[]) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                new FileChooser().setVisible(true);//Set frame to visible
            }
        });
    }

    /**
     * Changed the extension to .txt if it has not done.
     *
     * @param f file to be changed.
     * @return File that has been changed.
     */
    private File makeTxt(File f) {
        return f.getName().endsWith(txt) ? f : new File(f.getPath().concat(txt));
    }


    /**
     * Thread to save a document to file
     */
    private class FileSaver extends Thread {
        private Document doc;
        private File f;


        FileSaver(File f, Document doc) {
            setPriority(4);
            this.f = f;
            this.doc = doc;
        }

        public void run() {
            JComponent status = new JPanel();
            JFrame frame = new JFrame("Saving...");
            try {

                // initialize the statusbar
                status.removeAll();
                JProgressBar progress = new JProgressBar();
                progress.setMinimum(0);
                progress.setMaximum((int) doc.getLength());
                status.add(progress);
                status.revalidate();

                Container c = frame.getContentPane();
                c.setLayout(new BoxLayout(c, BoxLayout.PAGE_AXIS));
                c.add(status);
                c.add(new JLabel(String.format("Saving file '%s' in '%s'", f.getName(), f.getPath())));
                c.add(new JLabel("Please wait..."));

                frame.pack();
                frame.setVisible(true);
                halt(2000);

                // start writing
                Writer out = new FileWriter(f);
                Segment text = new Segment();
                text.setPartialReturn(true);
                int charsLeft = doc.getLength();
                int offset = 0;
                while (charsLeft > 0) {
                    doc.getText(offset, Math.min(4096, charsLeft), text);
                    out.write(text.array, text.offset, text.count);
                    charsLeft -= text.count;
                    offset += text.count;
                    progress.setValue(offset);
                    halt(10);
                }
                out.flush();
                out.close();
            } catch (IOException e) {
                final String msg = e.getMessage();
                SwingUtilities.invokeLater(new Runnable() {
                    public void run() {
                        JOptionPane.showMessageDialog(getFrame(),
                                "Could not save file: " + msg,
                                "Error saving file",
                                JOptionPane.ERROR_MESSAGE);
                    }
                });
            } catch (BadLocationException e) {
                System.err.println(e.getMessage());
            }
            // we are done... get rid of progressbar
            status.removeAll();
            status.revalidate();
            halt(2000);
            frame.setVisible(false);
        }
    }  // end of class FileSaver

    /**
     * Waiting for the human's eye to grasp the information.
     */
    private static final void halt(int ms) {
        try {
            Thread.sleep(ms);
        } catch (InterruptedException exception) {
            System.err.println("Thread had been interrupted..");
        }
    }
}  // end of FileChooser


_________________
***
Miracle's in your hands
***
Do you Love stories? visit this : http://melyablackrose.blogspot.com/. I bet you won't be sorry


TOP
 Profile Send private message  
Reply with quote  
Post new topic Reply to topic Quick reply  [ 1 post ] 
Quick reply


  

 Similar topics
 Image Insert in Excel File Using POI
 ASP file structure
 Search records from text file
 I need you to help me to solve this program by c++ language
 error closing file matlab save
 How to download any file in jsp.
 text Indent value to table
 Control font size of sub and sup text
 Change the text indent in the paragraph
 set text align to justify

All times are UTC [ DST ]


Users browsing similar posts

Users browsing this forum: No registered users and 5 guests



Jump to:  
Previous Question | Next Question 




Home
General Talks
Finished Projects
Code Library
Games
Tutorials

Java
C/C++
C-sharp
php
Script
JSP/Servlets
Ajax
ASP/ASP.net
Google SEO
Database
Communications
Phpbb3 styles
Photoshop tutorials
Flash tutorials
Find a job






Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
All copyrights reserved to codemiles.com 2007-2011
mileX v1.0 designed by codemiles team