FileViewer.java



import java.awt.*;
import java.awt.event.*;
import java.io.File;
import java.io.IOException;

/** ファイルの内容を表示する FileViewerクラス @Ver 1.0 */

public class FileViewer extends Panel {

   /** TextAreaのオブジェクト */

           public TextArea textArea;
 
   /** サブパネルのオブジェクト */

           public Panel subPanel1, subPanel2;
 
   /** Loadボタンのオブジェクト */

           public Button loadButton;
 
   /** Saveボタンのオブジェクト */

           public Button saveButton;
 
   /** ファイル名入力用のオブジェクト */

           public TextField fileNameField;
 
   /** Clearボタンのオブジェクト */

           public Button clearButton;
 
   /** メッセージ表示のオブジェクト */

           public Label messageLabel;
 
   /** 編集中のファイルのオブジェクト */

           protected File file;
 
   /** 編集中のファイルのファイル名 */

           protected String fileName;
 
   /** アダプタのオブジェクト */

           protected LoadAdapter loadAdapter;
           protected ClearAdapter clearAdapter;
 
   /** コンストラクタ */

      public FileViewer(){

           super();  // Panelの生成

           setLayout( new BorderLayout() );
           textArea = new TextArea( "", 32, 64 );
           subPanel1 = new Panel();
           subPanel2 = new Panel();
           subPanel2.setLayout( new GridLayout(1,1) );
           loadButton = new Button( "Load" );
           saveButton = new Button( "Save" );
           saveButton.setEnabled( false );   // Save機能はまだ呼び出せない
           clearButton = new Button( "Clear" );
           fileNameField = new TextField( "", 32 );
           messageLabel = new Label( "" );

           subPanel1.add( loadButton );
           subPanel1.add( saveButton );
           subPanel1.add( fileNameField );
           subPanel1.add( clearButton );
           subPanel2.add( messageLabel );
           add( subPanel1, "North" );
           add( textArea, "Center" );
           add( subPanel2, "South" );

           loadAdapter = new LoadAdapter();
           loadButton.addActionListener( loadAdapter );
           clearAdapter = new ClearAdapter();
           clearButton.addActionListener( clearAdapter );
     }

   /** ファイルのロードのメソッド */

     public void loadText() {

          fileName = fileNameField.getText();
          if ( fileName == null || fileName.equals( "" ) ) {

               messageLabel.setText( "ファイル名が入力されていません" );
               return;
          }
          try {
               file = new File( fileName );
               String text = FileLoader.loadText( file );
               textArea.setText( text );
               messageLabel.setText( "読み込み完了" );
          }
          catch( Exception e ) {

               messageLabel.setText( e.toString() );
          }
      }
 
   /** テキストのクリアのメソッド */

      public void clearText() {
 
          textArea.setText( "" );
          fileNameField.setText( "" );
          messageLabel.setText( "表示をクリアしました" );
      }

   /** 単独で起動した時に呼び出されるメソッド */
 
      public static void main( String argv[] ) {
 
           FileViewer fileViewer = new FileViewer();

           ExitableFrame frame
                   = new ExitableFrame("File Viewer");
           frame.add( fileViewer, "Center" );
           frame.pack();
           frame.show();
       }

    /** ロードボタンのアクションを処理する innerクラス */
 
      class LoadAdapter implements ActionListener {
 
         /** アクション処理のメソッド */
 
            public void actionPerformed( ActionEvent evt ) {

                 loadText();
            }
      } // LoadAdapterクラスの定義の終わり


    /** クリアボタンのアクションを処理する innerクラス */
 
      class ClearAdapter implements ActionListener {
 
         /** アクション処理のメソッド */
 
            public void actionPerformed( ActionEvent evt ) {

                 clearText();
            }
      } // ClearAdapterクラスの定義の終わり

} // FileViewerクラスの定義の終わり