import java.awt.*;
import java.io.*;
import javax.swing.*;
import java.lang.*;
import java.util.*;

import java.awt.event.*;



class FileTest extends JFrame
{
  private JTextField enterFileName;
  private JTextArea area;

  FileTest()
  {
    enterFileName= new JTextField("Enter filename :");

    // Define the callback.
    enterFileName.addActionListener
    (
      new ActionListener()
      {
        public void actionPerformed(ActionEvent e)
        {
          String s = e.getActionCommand();
          fileRead(s);
        }
      }
    );

    area = new JTextArea();
    ScrollPane sp = new ScrollPane();
    sp.add(area);

    Container c = getContentPane();
    c.add(filename,BorderLayout.NORTH);
    c.add(sp,BorderLayout.CENTER);
    setSize(500,500);
    setVisible(true);
  }
  

  /** Display a error message box to user. */
  public void errormsg(String msg)
  {
    JOptionPane.showMessageDialog
    (
      this, msg, "ERROR", JOptionPane.ERROR_MESSAGE
    );
  }

  /** Display the contents of the file to area. */
  public boolean areawrite(File f)
  {
    if (f.isFile()==false)
      return false;

    try
    {
      BufferedReader bf = new BufferedReader( 
        new FileReader(f) );
      StringBuffer sb = new StringBuffer();
      
      String text;
      
      while ( (text = bf.readLine()) != null )
        sb.append(text + "\n");

      area.append("\n\n");
      area.append(sb.toString());
    } 
    catch(Exception e)
    {
      errormsg("File Error");

      return false;
    }

    return true;
  }

  public void fileRead(String fname)
  {
    File f = new File(fname);

    if (f.exists()==false)
    {
      errormsg( fname + " file does not exist" );

      return;
    }

    areawrite(f);
  }

  public static void main( String arg[] )
  {
    FileTest app = new FileTest();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}

  



