Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / January 2006

Tip: Looking for answers? Try searching our database.

file .dat into a window

Thread view: 
palmis - 18 Jan 2006 14:09 GMT
I have a need to create a simple file browser that will allow
me to show a file .dat (that change run time) into a scrollable Java
TextView or TextWindow
so that I could read the new data which would be appended
to the file.
How can I do?

Thanks
Palmis
Rhino - 18 Jan 2006 16:37 GMT
>I have a need to create a simple file browser that will allow
> me to show a file .dat (that change run time) into a scrollable Java
> TextView or TextWindow
> so that I could read the new data which would be appended
> to the file.
> How can I do?

I'm not familiar with the TextView or TextWindow classes; they are not in
the Java 1.5.0_06 API. If it would be useful for you to have a program that
has a file chooser and displays the file in a scrollable JTextArea, I can
probably help you.

The program is one that I was helping a friend write a couple of years ago.
He was just beginning Java and we never finished it. However, the file
chooser works and the selected file is displayed in a JTextArea which
scrolls. If that would help you, I can probably give you the code if my
friend doesn't object. You'll probably want to do a lot of polishing to make
it pretty and flexible but the foundation is there.

Rhino
palmis - 19 Jan 2006 16:08 GMT
If supplied me the code I would be grate you of it .
Thanks
Palmis
Rhino - 20 Jan 2006 17:15 GMT
> If supplied me the code I would be grate you of it .
> Thanks
> Palmis

Okay, here is the code. Remember, it was a beginner programming project of a
friend of mine; he had no real experience in programming in any language,
let alone Java. The style is not very professional and the program is not
complete. But I think you will find that it can select and display a file
well enough; perhaps you can use it as a starting point for your own
program.

The program has one minor dependency, the icon that appears to represent
"Open". You can find this file, whose name is Open24.gif, on this page:
http://java.sun.com/developer/techDocs/hi/repository/TBG_General.html. It is
the larger of the two Open icons. Just save it to your computer and put it
in a package named "images" below your source code. For example, if you put
the source code in a package called viewer02, put Open24.gif in a package
called viewer02.images.

===============================================================
/*
* Created on May 25, 2003
*
*/
package viewer02;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.net.URL;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JToolBar;

public class Fileviewer03 extends JFrame implements ActionListener {

/* Setup the classes and declarations of variables that will have a class
wide
* scope.
*/
final String CLASS_NAME = getClass().getName(); // Used for error messages
in the displayFile method.
JFrame frame; // main content pane
JTextArea textArea;

/* Added Font on May 29, 2003 to allow the font that is used to
* display the file to be changed. In Future it may be set in
* the preferences.
*/
Font textFont; // Font used in the textArea
JScrollPane scrollPane;
/* file - the name of the variable used to pass the filename
* from the pickFile method to the displayFile method
*/
File file=null;  //file name variable

/* File pathName Added May 27, 2003 this variable is used to
* Store the path of the last file. So that the filechooser
* opens in the same directory, rather than the default directory
*/
File pathName=null; //file path variable
String fileName = new String();
/* Variables used to set up the information that is passed
* to the ActionListeners when a Menu Item is Pressed.
*/
static final String OpenText = "Open";
static final String PreferencesText = "Preferences";
static final String ExitText = "Exit";
static final String HelpText = "Help";
static final String ProdInfoText = "About";

/* Setup Menu Bar and Items
*
*/
JMenuBar menuBar;
JMenuItem OpenMenuItem = new JMenuItem(OpenText);
JMenuItem PreferencesMenuItem = new JMenuItem(PreferencesText);
JMenuItem ExitMenuItem = new JMenuItem(ExitText);
JMenuItem HelpMenuItem = new JMenuItem(HelpText);
JMenuItem ProdInfoMenuItem = new JMenuItem(ProdInfoText);

public static void main(String[] args) {

Fileviewer03 myProg = new Fileviewer03();
myProg.pack();
myProg.setLocationRelativeTo(null);
myProg.setVisible(true);
} // end main()

public Fileviewer03 () {

super("Fileviewer"); // Give the Frame a name
/* TODO: Set up the Name so that it displays the file Name
*
*/

/* Setup the Layout in the GUI
* Starting with the look and feel and then
* Setting up the Jframe for everything else to go into.
*/

JFrame.setDefaultLookAndFeelDecorated(true);
JFrame frame = new JFrame("FrameDemo");
//  Setup -  What happens when the frame closes?
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// frame.setLocationRelativeTo(null) ;  // should place the window in the
center of the screen if using 1.4.1

Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
System.out.println(dim);
frame.setLocation(dim.width / 2 - frame.getSize().width / 2,
     dim.height / 2 - frame.getSize().height / 2);

/* Get the open icon. */
String openIconFileName = "images/Open24.gif";
URL openIconUrl = this.getClass().getResource(openIconFileName);
ImageIcon openIcon = new ImageIcon(openIconUrl);

/* Add toolbar. */
JToolBar toolBar = new JToolBar();
toolBar.setFloatable(false);

/* Create open button. */
JButton openButton = new JButton(openIcon);
openButton.setToolTipText("Use this button to open a new file.");
openButton.addActionListener(this);
openButton.setActionCommand(OpenText);
toolBar.add(openButton);

/* Put toolbar on GUI. */
getContentPane().add(toolBar, BorderLayout.NORTH);

textFont = new Font("Courier", Font.PLAIN, 14);

/* Setup a textarea to display the file in. Make it read only,
* with a border on the sides and wrap the lines on the space
* between words. The background is White and the text is
* Black. Also set the font.
*/
textArea = new JTextArea(35, 60);
textArea.setEnabled(false);
textArea.setBorder(BorderFactory.createEmptyBorder(0,10,0,10));
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);
textArea.setBackground(Color.white);
textArea.setDisabledTextColor(Color.black);
textArea.setFont(textFont);

/* Put the textarea into a scrollpane so that the whole file
* can be viewed. Added May 29, 2003 the vertical Scroll bar
* is always on.
*/
scrollPane = new JScrollPane(textArea);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);/* Put the JScrollPane and the JTextArea into the Jframe */ getContentPane().add(scrollPane,BorderLayout.CENTER);/* Setup a menu bar. */ JMenuBar menuBar = new JMenuBar(); //Create the Menu Bar and instanciate it setJMenuBar(menuBar); // Associate the menubar with the frame JMenu FileMenu = new JMenu("File"); // create a main menu item called"File"  menuBar.add(FileMenu); // add the File menu to the menu bar  FileMenu.add(OpenMenuItem); // add the item to the File menu  FileMenu.add(PreferencesMenuItem); // add the item to the File menu  FileMenu.add(ExitMenuItem); // add the item to the File menu JMenu HelpMenu = new JMenu("Help"); // create a main menu item called"Help"  menuBar.add(HelpMenu); // add the Help menu to the menu bar  HelpMenu.add(HelpMenuItem); // add the item to the Help menu  HelpMenu.add(ProdInfoMenuItem); // add the item to the Help menu/* Set action commands for the menu items. */ OpenMenuItem.setActionCommand(OpenText); PreferencesMenuItem.setActionCommand(PreferencesText); ExitMenuItem.setActionCommand(ExitText); HelpMenuItem.setActionCommand(HelpText); ProdInfoMenuItem.setActionCommand(ProdInfoText);/* Add listeners for the menu items. */ OpenMenuItem.addActionListener(this); ExitMenuItem.addActionListener(this); PreferencesMenuItem.addActionListener(this); HelpMenuItem.addActionListener(this); ProdInfoMenuItem.addActionListener(this);/* Setup a button at the bottom of the Jframe * that brings up the file chooser */// JButton OKButton = new JButton("Select A New File");//  OKButton.setActionCommand(OpenText);//  OKButton.addActionListener(this);//  getContentPane().add(OKButton, BorderLayout.SOUTH);} // end constructor/method Filechooserpublic File pickFile() {// Create a JFileChooser JFileChooser filetree = new JFileChooser(pathName); filetree.setFileHidingEnabled(false); int returnVal = filetree.showOpenDialog(null);// Determine which file the user selected or close the application if userpressed cancel. if (returnVal == JFileChooser.APPROVE_OPTION) {  textArea.setText(""); // Clears the textarea  file = filetree.getSelectedFile();  fileName = file.getName();  pathName = file.getParentFile();  setTitle(pathName + File.separator + fileName);//  System.out.println(file); // only used to during testing//  System.out.println(fileName);//  System.out.println(pathName);  return file;  } else {  return null;  }} //end method pickFile()public void displayFile(File myFile) { String METHOD_NAME = "displayFile()"; String strLine = null; BufferedReader viewfile = null;// Put the file into the textarea. try {  viewfile = new BufferedReader(new FileReader(myFile));  while ((strLine = viewfile.readLine()) != null) {   textArea.append(strLine+"\n"); //added "\n", which causes line wrap   textArea.setCaretPosition(0); // Sets the position of the curser to thetop of the file   textArea.grabFocus(); // Gives the focus to the textarea so that themovement arrows work.   } // end while  viewfile.close(); // close file  } // end try catch(FileNotFoundException IO_excp) {  System.out.println(CLASS_NAME + "." + METHOD_NAME + " - The file, " +viewfile + ", could not be found. Error: "  + IO_excp);  System.exit(1);  } catch(IOException IO_excp) {  System.out.println(CLASS_NAME + "." + METHOD_NAME + " - I/O Error readingthe file, " + viewfile + ". Error: " + IO_excp);  System.exit(1);  } return;} //End method displayFile()public void actionPerformed (ActionEvent evt){ String command = evt.getActionCommand();  if (command.equals(ExitText)) {    System.exit(0);   } // end if command = ExitText  else  if (command.equals(OpenText)){   file = pickFile();//   System.out.println ("Open was pressed"); // used for testing//   System.out.println ("File returned was " + file);   displayFile(file);   } //end if command = OpenText  else  if (command.equals(PreferencesText)){   System.out.println ("Preferences was pressed");   //SetPreferences();  } //end if command = PreferencesText  else  if (command.equals(HelpText)){   System.out.println ("Help was pressed");   //new Help();  } //end if command = PreferencesText  else  if (command.equals(ProdInfoText)){   System.out.println ("About was pressed");   //new About();  } //end if command = ProdInfoText} //end method ActionListeners} //End Class Fileviewer03===============================================================Rhino
Rhino - 20 Jan 2006 22:56 GMT
Sorry, I'm not quite sure what happened to the code but a lot of it got
mangled by Outlook Express. Here is the code again. Hopefully, this time
each line will stay where it is supposed to be.

==============================================================

/*
* Created on May 25, 2003
*
*/
package viewer02;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.net.URL;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JToolBar;

public class Fileviewer03 extends JFrame implements ActionListener {

   /*
    * Setup the classes and declarations of variables that will have a
class
    * wide scope.
    */
   final String CLASS_NAME = getClass().getName(); // Used for error
messages
                                                   // in the displayFile
                                                   // method.

   JFrame frame; // main content pane

   JTextArea textArea;

   /*
    * Added Font on May 29, 2003 to allow the font that is used to display
the
    * file to be changed. In Future it may be set in the preferences.
    */
   Font textFont; // Font used in the textArea

   JScrollPane scrollPane;

   /*
    * file - the name of the variable used to pass the filename from the
    * pickFile method to the displayFile method
    */
   File file = null; // file name variable

   /*
    * File pathName Added May 27, 2003 this variable is used to Store the
path
    * of the last file. So that the filechooser opens in the same
directory,
    * rather than the default directory
    */
   File pathName = null; // file path variable

   String fileName = new String();

   /*
    * Variables used to set up the information that is passed to the
    * ActionListeners when a Menu Item is Pressed.
    */
   static final String OpenText = "Open";

   static final String PreferencesText = "Preferences";

   static final String ExitText = "Exit";

   static final String HelpText = "Help";

   static final String ProdInfoText = "About";

   /*
    * Setup Menu Bar and Items
    *
    */
   JMenuBar menuBar;

   JMenuItem OpenMenuItem = new JMenuItem(OpenText);

   JMenuItem PreferencesMenuItem = new JMenuItem(PreferencesText);

   JMenuItem ExitMenuItem = new JMenuItem(ExitText);

   JMenuItem HelpMenuItem = new JMenuItem(HelpText);

   JMenuItem ProdInfoMenuItem = new JMenuItem(ProdInfoText);

   public static void main(String[] args) {

       Fileviewer03 myProg = new Fileviewer03();
       myProg.pack();
       myProg.setLocationRelativeTo(null);
       myProg.setVisible(true);
   } // end main()

   public Fileviewer03() {

       super("Fileviewer"); // Give the Frame a name
       /*
        * TODO: Set up the Name so that it displays the file Name
        *
        */

       /*
        * Setup the Layout in the GUI Starting with the look and feel and
then
        * Setting up the Jframe for everything else to go into.
        */

       JFrame.setDefaultLookAndFeelDecorated(true);
       JFrame frame = new JFrame("FrameDemo");
       // Setup - What happens when the frame closes?
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

       // frame.setLocationRelativeTo(null) ; // should place the window in
the
       // center of the screen if using 1.4.1

       Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
       System.out.println(dim);
       frame.setLocation(dim.width / 2 - frame.getSize().width / 2,
dim.height / 2
               - frame.getSize().height / 2);

       /* Get the open icon. */
       String openIconFileName = "images/Open24.gif";
       URL openIconUrl = this.getClass().getResource(openIconFileName);
       ImageIcon openIcon = new ImageIcon(openIconUrl);

       /* Add toolbar. */
       JToolBar toolBar = new JToolBar();
       toolBar.setFloatable(false);

       /* Create open button. */
       JButton openButton = new JButton(openIcon);
       openButton.setToolTipText("Use this button to open a new file.");
       openButton.addActionListener(this);
       openButton.setActionCommand(OpenText);
       toolBar.add(openButton);

       /* Put toolbar on GUI. */
       getContentPane().add(toolBar, BorderLayout.NORTH);

       textFont = new Font("Courier", Font.PLAIN, 14);

       /*
        * Setup a textarea to display the file in. Make it read only, with
a
        * border on the sides and wrap the lines on the space between
words.
        * The background is White and the text is Black. Also set the font.
        */
       textArea = new JTextArea(35, 60);
       textArea.setEnabled(false);
       textArea.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 10));
       textArea.setLineWrap(true);
       textArea.setWrapStyleWord(true);
       textArea.setBackground(Color.white);
       textArea.setDisabledTextColor(Color.black);
       textArea.setFont(textFont);

       /*
        * Put the textarea into a scrollpane so that the whole file can be
        * viewed. Added May 29, 2003 the vertical Scroll bar is always on.
        */
       scrollPane = new JScrollPane(textArea);
       scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

       /* Put the JScrollPane and the JTextArea into the Jframe */
       getContentPane().add(scrollPane, BorderLayout.CENTER);

       /* Setup a menu bar. */

       JMenuBar menuBar = new JMenuBar(); // Create the Menu Bar and
                                           // instanciate it
       setJMenuBar(menuBar); // Associate the menubar with the frame

       JMenu FileMenu = new JMenu("File"); // create a main menu item
called
                                           // "File"
       menuBar.add(FileMenu); // add the File menu to the menu bar
       FileMenu.add(OpenMenuItem); // add the item to the File menu
       FileMenu.add(PreferencesMenuItem); // add the item to the File menu
       FileMenu.add(ExitMenuItem); // add the item to the File menu

       JMenu HelpMenu = new JMenu("Help"); // create a main menu item
called
                                           // "Help"
       menuBar.add(HelpMenu); // add the Help menu to the menu bar
       HelpMenu.add(HelpMenuItem); // add the item to the Help menu
       HelpMenu.add(ProdInfoMenuItem); // add the item to the Help menu

       /* Set action commands for the menu items. */
       OpenMenuItem.setActionCommand(OpenText);
       PreferencesMenuItem.setActionCommand(PreferencesText);
       ExitMenuItem.setActionCommand(ExitText);
       HelpMenuItem.setActionCommand(HelpText);
       ProdInfoMenuItem.setActionCommand(ProdInfoText);

       /* Add listeners for the menu items. */
       OpenMenuItem.addActionListener(this);
       ExitMenuItem.addActionListener(this);
       PreferencesMenuItem.addActionListener(this);
       HelpMenuItem.addActionListener(this);
       ProdInfoMenuItem.addActionListener(this);

       /*
        * Setup a button at the bottom of the Jframe that brings up the
file
        * chooser
        */
       // JButton OKButton = new JButton("Select A New File");
       // OKButton.setActionCommand(OpenText);
       // OKButton.addActionListener(this);
       // getContentPane().add(OKButton, BorderLayout.SOUTH);
   } // end constructor/method Filechooser

   public File pickFile() {

       // Create a JFileChooser
       JFileChooser filetree = new JFileChooser(pathName);

       filetree.setFileHidingEnabled(false);
       int returnVal = filetree.showOpenDialog(null);

       // Determine which file the user selected or close the application
if
       // user pressed cancel.

       if (returnVal == JFileChooser.APPROVE_OPTION) {
           textArea.setText(""); // Clears the textarea
           file = filetree.getSelectedFile();
           fileName = file.getName();
           pathName = file.getParentFile();
           setTitle(pathName + File.separator + fileName);
           // System.out.println(file); // only used to during testing
           // System.out.println(fileName);
           // System.out.println(pathName);
           return file;
       } else {
           return null;
       }

   } // end method pickFile()

   public void displayFile(File myFile) {

       String METHOD_NAME = "displayFile()";
       String strLine = null;
       BufferedReader viewfile = null;

       // Put the file into the textarea.

       try {
           viewfile = new BufferedReader(new FileReader(myFile));
           while ((strLine = viewfile.readLine()) != null) {
               textArea.append(strLine + "\n"); // added "\n", which causes
                                                   // line wrap
               textArea.setCaretPosition(0); // Sets the position of the
                                               // curser to the top of the
file
               textArea.grabFocus(); // Gives the focus to the textarea so
                                       // that the movement arrows work.
           } // end while
           viewfile.close(); // close file
       } // end try
       catch (FileNotFoundException IO_excp) {
           System.out.println(CLASS_NAME + "." + METHOD_NAME + " - The
file, " + viewfile
                   + ", could not be found. Error: " + IO_excp);
           System.exit(1);
       } catch (IOException IO_excp) {
           System.out.println(CLASS_NAME + "." + METHOD_NAME + " - I/O
Error reading the file, "
                   + viewfile + ". Error: " + IO_excp);
           System.exit(1);
       }
       return;
   } // End method displayFile()

   public void actionPerformed(ActionEvent evt) {

       String command = evt.getActionCommand();
       if (command.equals(ExitText)) {
           System.exit(0);
       } // end if command = ExitText
       else if (command.equals(OpenText)) {
           file = pickFile();
           // System.out.println ("Open was pressed"); // used for testing
           // System.out.println ("File returned was " + file);
           displayFile(file);
       } // end if command = OpenText
       else if (command.equals(PreferencesText)) {
           System.out.println("Preferences was pressed");

           // SetPreferences();
       } // end if command = PreferencesText
       else if (command.equals(HelpText)) {
           System.out.println("Help was pressed");

           // new Help();
       } // end if command = PreferencesText
       else if (command.equals(ProdInfoText)) {
           System.out.println("About was pressed");

           // new About();
       } // end if command = ProdInfoText

   } // end method ActionListeners

} // End Class Fileviewer03
==============================================================

Rhino
palmis - 23 Jan 2006 09:07 GMT
Thank you very much, but I want open file authomatically.
My file .dat is not disply correctly with esadecimal value into your
window. I try to instrument your code.

Palmis


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2009 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.