ファイル選択

実行中にファイルを選択できるように

エディタやワープロでやるように,ファイルの一覧を出してその中からファイルを選択するようにします。

JFileChooser

を使います。

SanTakuF.javaの作成

SanTak.java に書き加えます

ファイル名 SanTakuF.java

前回の構成

public SanTaku(){
	setDefaultCloseOperation(EXIT_ON_CLOSE);
	m   = new Mondaishuu("mondai.txt",10 );
	label1 = new JLabel("問題 "+(n+1),JLabel.LEFT); //nは0から問題番号は1から

今回の構成

public SanTakuF(){
	setDefaultCloseOperation(EXIT_ON_CLOSE);
	JFileChooser chooser = new JFileChooser(".");
	int retVal = chooser.showOpenDialog(this);
	if (retVal != JFileChooser.APPROVE_OPTION) System.exit(0);

	File file = chooser.getSelectedFile();
	String fname = file.getPath();
	m   = new Mondaishuu(fname,10);
	label1 = new JLabel("問題 "+(n+1),JLabel.LEFT); //nは0から問題番号は1から

なかにFileクラスを使っているので、次のパッケージをインポートする必要があります。

import java.io.*;

実行

いつものように実行します。

$ javac SanTakuF.java
$ java SanTakuF

最初にファイルの選択画面がでます。mondai.txtなどを選択します。

filechooser

選択すると問題が始まります。

三択問題2問目になったところ

もしも問題の形式になっていないファイルを選択すると、うまく動かないはずです。ほんとうはそのような場合にファイルの形式が間違っているというメッセージがでて、選択しなおすとか、停止するとかの対策が必用です。

ダブルクリックで実行

SanTakuF.javaについてもjarにすることをやってみます。

(1)SanTakuF.javaをコンパイルすると、SanTakuF.class ができます。この他にSanTakuF.javaの実行にはMondaishuu.classとToi.classが必要です。この3つを(2)のマニフェストファイルと一緒にまとめます。

(2)次の内容のテキストファイルを作り、適当なファイル名で保存します。この例ではSanTakuF.txtとしました。このファイルをマニフェストファイルと呼びます。

Main-Class: SanTakuF

この中の SanTakuFは実行するmainを含むクラス名です。いままで 「 java クラス名 」 で実行していたクラス名を書きます。

最後は必ず改行します。(Linuxでは改行しなくても大丈夫)

(3)jarコマンドで次のように命令します。

$ jar cvfm SanTakuF.jar SanTakuF.txt SanTakuF.class Mondaishuu.class Toi.class

次のような意味です。

cvfm
オプション
c:新規に作成する
v:逐次報告をする 指定しないと黙って仕事をします
f:jarファイル名の指定をする(正確には指定する名前のファイルに書き出す)
m:マニフェストファイルの指定をする
SanTakuF.jar
作成するjarファイル名
SanTakuF.txt
マニフェストファイル名 (2)でつけた名前とあわせます
SanTakuF.class Mondaishuu.class Toi.class
使用するclassファイルのリスト

SanTakuFで名前を揃えているのはわかりやすいようにであってMain-Class:の名前があっていれば他は違う名前でもかまいません。

以下のように表示され SanTakuF.jar というファイルができます。

$ jar cvfm SanTakuF.jar SanTakuF.txt SanTakuF.class Mondaishuu.class Toi.class
マニフェストが追加されました。
SanTakuF.class を追加中です。(入 = 3907) (出 = 2146)(45% 収縮されました)
Mondaishuu.class を追加中です。(入 = 2628) (出 = 1586)(39% 収縮されました)
Toi.class を追加中です。(入 = 286) (出 = 212)(25% 収縮されました)
$

(4)SanTakuF.jarをダブルクリックすると実行できます。

やはり最初はファイルの選択になります。

filechooser

聖愛高等学校
http://www.seiai.ed.jp/
Last Modified