參考答案:
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
public class JDD01
{
public static void main(String args[])
{
new MyApp();
}
}
class MyApp
{
MyApp()
{
JFrame f = new JFrame();
f.setSize(300, 200);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLocationRelativeTo(null);
JFileChooser chooser = new JFileChooser();
String[] exts={".java",".class"};
AppFiles filter = new AppFiles(exts,"Java-Related Files");
chooser.setFileFilter(filter);
int returnVal = chooser.showOpenDialog(f);
if(returnVal==JFileChooser.APPROVE_OPTION)
f.setTitle(chooser.getSelectedFile().getName()); //如果使用者有選擇檔案,改變視窗標題
else
f.setTitle("You don`t choose any file"); //沒有回傳值代表沒有選擇
}
}
class AppFiles extends javax.swing.filechooser.FileFilter //建立繼承FileFilter的class,命名為AppFiles
{
String[] extensions;
String description;
AppFiles(String[] exts,String descr)
{
extensions = exts;
description = descr;
for(int i=0;i<exts.length;i++)
extensions[i] = exts[i].toLowerCase();
}
@Override //此Function為FileFilter強制實作
public boolean accept(File f) {
// TODO Auto-generated method stub
if(f.isDirectory())
return true;
else
{
String fname = f.getName().toLowerCase(); //取得完整檔名,並全數轉為小寫
for(String s:extensions)
{
if(fname.endsWith(s)) //看字串的尾端是否和extentions內的字串相等 (比對副檔名)
return true; //如果其中一個相等回傳true
}
}
return false; //找不到就會跳出迴圈,回傳false
}
@Override //此Function為FileFilter強制實作
public String getDescription() {
// TODO Auto-generated method stub
return description;
}
}
執行結果:
文章標籤
全站熱搜
