DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   Java (http://www.daniweb.com/forums/forum9.html)
-   -   FileChooser (http://www.daniweb.com/forums/thread158517.html)

ebiz Nov 20th, 2008 6:49 am
FileChooser
 
I wondered if anyone could help. I am trying to use a FileChooser in java. I have got the dialog box to appear and can select the file, but the box just displays "opening" and the file name. how to I add to the code to make it actually open the text file?

here is my current code:

package org.work;

import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.SwingUtilities;
import javax.swing.filechooser.*;

public class FileChooser extends JFrame
{

private JTextArea log;
private JFileChooser fc = new JFileChooser();

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

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

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

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.NORTH); //Add the buttons to the panel
contentPane.add(logScrollPane, BorderLayout.CENTER); //Add the text area to the panel
}

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 //If not;
{
log.append("Open command cancelled by user." + newline); //Display this command in the text area
}
}
}

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();

log.append("Saving: " + file.getName() + "." + newline); //Display "Saving" and the retrieved file name in the text area
} else //If not;
{
log.append("Save command cancelled by user." + newline); //Display this command in the text area
}
}
}

public static void main(String s[])
{
JFrame frame = new FileChooser();

frame.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e) {System.exit(0);} //Terminates program
});

frame.pack();
frame.setVisible(true); //Set frame to visible
}
}

javaAddict Nov 20th, 2008 9:34 am
Re: FileChooser
 
With this code you can read files:

File fileName;
//OR
String fileName;

BufferedReader reader = new BufferedReader(new FileReader(fileName));

String line = reader.readLine();
while (line != null) {
//do whatever you want with the line read.
//perhaps append it to the TextArea.

line = reader.readLine();
}

ebiz Nov 20th, 2008 9:48 am
Re: FileChooser
 
Is this within the same class? and do you need to import anything else other than these?

import java.io.*;
import java.util.Scanner;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.filechooser.*;

javaAddict Nov 20th, 2008 10:22 am
Re: FileChooser
 
Once you get the file:
File file = fc.getSelectedFile();
use the code to read the file's lines.

File file = fc.getSelectedFile();

BufferedReader reader = new BufferedReader(new FileReader(file));

String line = reader.readLine();
while (line != null) {
//do whatever you want with the line read.
//perhaps append it to the TextArea.

line = reader.readLine();
}
reader.close();

Your imports are fine.

ebiz Nov 20th, 2008 1:16 pm
Re: FileChooser
 
Thank You for your help.

I have tried adding that code, but the reader is not found, as they are all underlined, and say "unhandled exception type IOExpection".

I added in "File fileName;" from your first post, but this didn't make a difference.

The errors are:
Exception in thread "AWT-EventQueue-0" java.lang.Error: Unresolved compilation problems:
Unhandled exception type FileNotFoundException
Unhandled exception type IOException
Unhandled exception type IOException
Unhandled exception type IOException

at org.project.FileChooser$OpenListener.actionPerformed(FileChooser.java:54)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

i hope this makes sense. thank you.

javaAddict Nov 20th, 2008 3:31 pm
Re: FileChooser
 
Do you know how to catch Exceptions? I assumed that you do.

ebiz Nov 20th, 2008 7:29 pm
Re: FileChooser
 
thanks for your help. its working now

Ezzaral Nov 20th, 2008 7:53 pm
Re: FileChooser
 
Mark the thread as solved if the issue is resolved.

javaAddict Nov 21st, 2008 3:48 am
Re: FileChooser
 
Quote:

Originally Posted by ebiz (Post 740968)
thanks for your help. its working now

Did you put BufferedReader in a try-catch block? Do you want an example?


All times are GMT -4. The time now is 8:13 am.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC