研究演習(小松原)

Java ソースコード (ファイル名はFileList.java)
//小松原ゼミ Java サンプルプログラムソース
//ファイル名 FileList.java
//ファイル選択ダイアログボックスの使用方法例。

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

public class FileList{
  //以下の2つのテキストエリアには、選択したファイルの
  //名前と2行目の内容が表示されます。
  JTextField tf01=new JTextField("",20);
  JTextField tf02=new JTextField("",20);
  
  //最初に自分自身を生成。
  public static void main(String ar[]){
    FileList sample=new FileList();
  }
  
  //コンストラクタ
  FileList(){
    //全体の基礎となるフレームを名前fで生成。
    JFrame f=new JFrame("ファイル入出力");
    
    //終了処理を記述する必要のない設定
    f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
    
    //JButton型の変数bt01を生成。
    JButton bt01=new JButton("開く");
    //ActionCommand文字列としてOpenを設定
    bt01.setActionCommand("Open");
    
    //ボタンが押されたときには、クラスPushButtonActionListenerの
    //actionPerformedメソッドが呼び出される。このように
    //ActionListener型を継承したクラスを新たに作成して、その
    //クラス型の変数のactionPerformedメソッドを呼び出すことで
    //処理を行うこともできる。
    bt01.addActionListener(new PushButtonActionListener(f));

    //パネルを作る。
    JPanel p1=new JPanel();
    //このパネルの中にボタンbt01を配置。
    p1.add(bt01);
    //パネルをBorderLayout.NORTHの位置でfの中のContentPaneに配置。
    f.getContentPane().add(p1,BorderLayout.NORTH);

    //2つ目のパネルを作る。
    JPanel p2=new JPanel();
    //テキストフィールドtf01とtf02を配置。
    p2.add(tf01);
    p2.add(tf02);
    //パネルをBorderLayout.CENTERの位置でfの中のContentPaneに配置。
    f.getContentPane().add(p2,BorderLayout.CENTER);
    //フレームサイズを指定
    f.setSize(400,150);
    f.setVisible(true);
  }
  
  //アクションリスナ
  private class PushButtonActionListener implements ActionListener{
    //表示を行わないフレームを生成。
    JFrame f = null;
    
    //ActionListenerの定義
    public PushButtonActionListener(JFrame af) {
      this.f = af;
    }
    public void actionPerformed(ActionEvent ae){
      if(ae.getActionCommand()=="Open"){
        tf01.setText("");
        tf02.setText("");
        JFileChooser fc=new JFileChooser(System.getProperty("user.dir"));
        //ファイル選択ダイアログを表示する。選択されたかどうかはfdに
        //返される。
        int fd=fc.showOpenDialog(f);
        try{
          if(fd==JFileChooser.APPROVE_OPTION){
            //ファイルからの読み込みを行うには、FileInputStreamと
            //BufferedReaderをセットで使う。
            FileInputStream fi=new FileInputStream(fc.getSelectedFile());
            BufferedReader br=new BufferedReader(new InputStreamReader(fi));
            
            //s01にファイル名を入れる
            String s01=fc.getSelectedFile().getName();
            tf01.setText(s01);
            
            //s02にファイルから次の1行をread
            String s02=br.readLine();
            if(s02 != null) tf02.setText(s02);
            br.close();
            fi.close();
          }
        }
        catch(Exception ex){}
      }
    }
  }
}




▼研究演習ホームに戻る
▼小松原研究室公開ページ
▼経営学科詳細紹介ページ

 !   Information
ここは,研究演習履修者専用のWebページです.

一般向け研究室ページ: www.osu.ac.jp/~komatsu
講義レポート提出管理システムRepadを公開しました。
軽量,フリーのLMSです。

  (c)2003 M. Komatsubara