//小松原ゼミ 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){}
}
}
}
}
▼研究演習ホームに戻る
▼小松原研究室公開ページ
▼経営学科詳細紹介ページ
|
|