ファイル選択にフィルタを付ける

.txt だけという選択ができるように

ファイルのタイプが .txt だけだと選択しやすいので、これを実装します。

filechooser

新しいclassを作ります

ファイル名 MyFileFilter.java

public class MyFileFilter extends javax.swing.filechooser.FileFilter {
	String ext , msg;
	public MyFileFilter(String ex , String ms) {
		ext = ex;
		msg = ms;
	}
	public boolean accept(java.io.File f) {
		return f.getName().endsWith(ext);
	}
	public String getDescription() { return msg; }
}

コンパイルだけします。実行できません。

SanTakF.java に書き加えます

ファイル名 SanTakuF.java

前回の構成

public SanTakuF(){
	setDefaultCloseOperation(EXIT_ON_CLOSE); //終了処理を追加
	JFileChooser chooser = new JFileChooser("./");
	int retVal = chooser.showOpenDialog(this);

今回の構成

public SanTakuF(){
	setDefaultCloseOperation(EXIT_ON_CLOSE); //終了処理を追加
	JFileChooser chooser = new JFileChooser("./");
	MyFileFilter filter = new MyFileFilter(".txt" , "テキストファイル(*.txt)");
	chooser.addChoosableFileFilter(filter);
	int retVal = chooser.showOpenDialog(this);

これで、最初から、.txtの拡張子のファイルだけを表示します。

filechooser

ファイルタイプの右の▼をクリックすることで、「全てのファイル」に戻すことも可能です。

filechooser

いろいろ選べるようにする

ファイル名 SanTakuM.java

SanTakuF.java

public SanTakuF(){
	setDefaultCloseOperation(EXIT_ON_CLOSE); //終了処理を追加
	JFileChooser chooser = new JFileChooser("./");
	MyFileFilter filter = new MyFileFilter(".txt" , "テキストファイル(*.txt)");
	chooser.addChoosableFileFilter(filter);
	int retVal = chooser.showOpenDialog(this);

SanTakuM.java

public SanTakuS(){
	setDefaultCloseOperation(EXIT_ON_CLOSE); //終了処理を追加
	JFileChooser chooser = new JFileChooser("./");
	MyFileFilter[] filter = {
		new MyFileFilter(".java" , "Java ファイル(*.java)") ,
		new MyFileFilter(".class" , "class ファイル(*.class)") ,
		new MyFileFilter(".txt" , "テキストファイル(*.txt)")
	};
	for(int i = 0 ; i < filter.length ; i++){
		chooser.addChoosableFileFilter(filter[i]);
	}
	int retVal = chooser.showOpenDialog(this);

これはやってみただけで、java,classファイルを選んでも三択問題はできません

もくじ

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