/*
@此程式的目的是通過檔案過濾器來過濾檔案.
@作者:李洪亮
*/
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import java.util.*;
import javax.swing.event.*;
import java.awt.*;
import javax.swing.filechooser.FileFilter;
public class CheckImageDemo extends JFrame{
private JMenu menu,helpmenu;
private JMenuItem openFile,exititem,helpitem;
private JLabel label,label1;
private JScrollPane jscrollPane;
private JMenuBar menuBar;
private JFileChooser fileChooser;
public CheckImageDemo(){
super("檢索圖片");
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
System.exit(0);
}
});
menuBar=new JMenuBar();
menu=new JMenu("檔案");
openFile=new JMenuItem("開啟");
exititem=new JMenuItem("退出");
setJMenuBar(menuBar);
menuBar.add(menu);
menu.add(openFile);
menu.add(exititem);
/*******************************************************************************
檔案“退出”的監聽事件
*******************************************************************************/
exititem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});
helpmenu=new JMenu("關於");
helpitem=new JMenuItem("關於檢索圖片器");
helpmenu.add(helpitem);
menuBar.add(helpmenu);
/*******************************************************************************
協助“關於”的監聽事件
*******************************************************************************/
helpitem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String str="歡迎你使用本程式!"+"/n"+
"程式著作權歸作者所有@轉載請註明作者身份"+"/n"+
"作者:李洪亮 Update:2008-04-03"+"/n"+
"更多資訊請訪問:http://lhl54861287.qyun.net";
JOptionPane.showMessageDialog(null,str,"關於檢索圖片",JOptionPane.INFORMATION_MESSAGE);
}
});
label=new JLabel("",SwingConstants.CENTER);
label1=new JLabel("",SwingConstants.CENTER);
label1.setText("映像檢索中心");
label.setIcon(new ImageIcon("1.gif"));
jscrollPane=new JScrollPane();
jscrollPane.getViewport().add(label);
getContentPane().setLayout(new BorderLayout());
getContentPane().add(jscrollPane,BorderLayout.CENTER);
getContentPane().add(label1,BorderLayout.SOUTH);
fileChooser=new JFileChooser();
JFileFilter filter=new JFileFilter();
filter.addType("jpg");
filter.addType("gif");
filter.setDescription("IMG archives");
fileChooser.addChoosableFileFilter(filter);
/*******************************************************************************
檔案“開啟”的監聽事件
*******************************************************************************/
openFile.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
int r=fileChooser.showOpenDialog(null);
if(r==JFileChooser.APPROVE_OPTION){
String pathname=fileChooser.getSelectedFile().getPath();
label1.setText("你所開啟圖片的路徑為:"+pathname);
label.setIcon(new ImageIcon(pathname));
}
}
});
}
class JFileFilter extends FileFilter{
protected String description;
protected ArrayList arraylist=new ArrayList();
public void addType(String s){
arraylist.add(s);
}
public void setDescription(String s){
description=s;
}
public String getDescription(){
return description;
}
public boolean accept(File f){
if(f.isDirectory()){
return true;
}else if(f.isFile()){
Iterator it=arraylist.iterator();
while(it.hasNext()){
if(f.getName().endsWith((String)it.next())) return true;
}
}
return false;
}
}
public static void main(String args[]){
CheckImageDemo frame=new CheckImageDemo();
frame.setSize(800,450);
Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize=frame.getSize();
frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);
frame.setVisible(true);
}
}