close
參考答案:
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; } }
執行結果:
全站熱搜
留言列表