![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
No.1ベストアンサー
- 回答日時:
AWTのFileDialogではFilenameFilterを使ってファイルの種類を選別できますが、Windowsでは動作しないはずです。
SwingのJFileChooserならFileFilterを使ってOSの制限なくファイルの種類を選別できます。
コメント、
どうもありがとうございました。
上記の方と同じになってしまいますが、
自分としてはSwing使わずに
fd=new FileDialog(
this , "File Open" , FileDialog.LOAD);
fd.setFile("*.xls");
とやっています。
これでは、エクセルのみ表示できます。
が、
フィルの種類の所で、全てのファイル(*.*)
を
エクセルのみ
としたいんです。
もし知っていれば、ご指導お願いします
No.2
- 回答日時:
簡単なプログラムを組んでみました。
以下のコードを実行してみてください。
このコードに答えがあります。
解読してください。
####
import java.io.File;
import java.util.*;
import javax.swing.*;
import javax.swing.filechooser.*;
class AAA {
public static void main(String[] args) {
MyFileChooser fc = new MyFileChooser();
MyFileFilter ff = new MyFileFilter();
fc.setFileFilter(ff);
while(true) {
int retValue = fc.showOpenDialog(null);
if (retValue == JFileChooser.APPROVE_OPTION) {
System.out.println("OK : ボタンが押された");
File curDir = fc.getCurrentDirectory();
System.out.println("[" + curDir.getName() + "]ディレクトリの");
String fullpath = fc.getSelectedFile().getPath();
if (!fullpath.endsWith("." + "xls")) {
fullpath += ("." + "xls");
}
System.out.println("[" + fullpath + "]ファイルが");
System.out.println("選択された");
} else {
System.out.println("終了");
System.exit(0);
}
//fc = new MyFileChooser(curDir);
}
}
}
class MyFileChooser extends JFileChooser {
private MyFileFilter mlff = new MyFileFilter();
public MyFileChooser() {
super();
}
public MyFileChooser(File curDir) {
super(curDir);
}
}
class MyFileFilter extends FileFilter {
public MyFileFilter() {
super();
}
public boolean accept(File file) {
if (file != null) {
/* ディレクトリなら */
/* true を返す */
if (file.isDirectory()) {
return true;
}
String extention = getExtentionFromFile(file);
if (extention == null) {
} else {
if (extention.equals("xls")) {
return true;
}
}
}
return false;
}
public String getDescription() {
return "エクセルファイル(xls)"; //ここは適当に好きな文言に変える
}
private String getExtentionFromFile(File file) {
if(file == null) {
return null;
}
String filename = file.getName();
/* 最後のピリオド位置を取得 */
int i = filename.lastIndexOf('.');
if(i==-1) {
return null;
}
if ((i>0) &&
(i< (filename.length()-1) ) ) {
/* 最後のピリオドより後の文字列を小文字で返す */
return filename.substring(i+1).toLowerCase();
} else {
return null;
}
}
}
簡単なプログラム例まで作成してもらって、
ありがとうございました。
ただ、自分のレベルが足らず、又Swingをやっていない
ため、ちょっと理解できませんでした。
ごめんなさい。
自分としてはSwing使わずに
fd=new FileDialog(
this , "File Open" , FileDialog.LOAD);
fd.setFile("*.xls");
とやっています。
これでは、エクセルのみ表示できます。
が、
フィルの種類の所で、全てのファイル(*.*)
を
エクセルのみ
としたいんです。
もし知っていれば、ご指導お願いします
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Visual Basic(VBA) DisplayAlertsブロパティで ”実行時エラー424オブジェクトが必要です” 5 2022/05/15 18:02
- Visual Basic(VBA) VBAでファイルを開くプログラムがエラーです 2 2023/02/21 16:56
- Excel(エクセル) Excelを開くとエラーが出る 2 2022/10/03 16:13
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- その他(ソフトウェア) ダウンロードしたファイルの「種類」が「Windowsmediaplayer」に変わってしまい、開くこ 2 2023/07/03 21:45
- Access(アクセス) Access2016のExcelインポートの機能のことで教えてください 1 2022/09/11 14:58
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
[JAVA]エラーが解決できません。
-
csv出力について
-
Java int sum = 0は必要ですか?
-
yyyymmddからyyyy/mm/d...
-
linuxでapache poiが動かない。
-
ObjectInputStreamとStreamCorr...
-
テキストファイルから空白行をよむ
-
Windowsでの標準入力の終了の仕方
-
Servletでテキストボックスに入...
-
Javaの質問です。
-
Javaの質問です。テキストファ...
-
Java初心者です。csvファイルの...
-
ソケットを使ったサーバとクラ...
-
javaプログラミング
-
InputStream.read()でタイムア...
-
Class.forNameでエラーになる
-
equalsの逆
-
JSPからパラメータを取得してサ...
-
Javaでデータに登録する度にID...
-
以下のJAVAプログラムでご質問...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
yyyymmddからyyyy/mm/d...
-
equalsの逆
-
csv出力について
-
九九を横に表示する。
-
テキストファイルから空白行をよむ
-
Java int sum = 0は必要ですか?
-
[JAVA]エラーが解決できません。
-
javaのfor文が機能してないみた...
-
InputStream.read()でタイムア...
-
Servletでテキストボックスに入...
-
Javaでデータに登録する度にID...
-
Inputstreamについて
-
BufferedReaderでのエラー
-
FileクラスのcanRead/canWrite...
-
java連結
-
Java 読み込んだテキストファイ...
-
Javaの質問です。テキストファ...
-
テキストファイルの任意の文字...
-
Class.forNameでエラーになる
-
テキストファイルにおいて任意...
おすすめ情報