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クラスの定義の終わり