图片搜索浏览程序
import javax.imageio.*;
import java.awt.*;
import java.awt.List;
import java.io.*;
import java.awt.event.*;
import java.awt.image.*;
import java.util.*;
public class ImageSee {
public static void main(String args[]){
new SeeFrame().launchFrame();
}
}
class SearchImage{// 搜索图片文件存储在LinkedList里面
LinkedList<File> ll = new LinkedList<list>();
int no = 0;
File[] l = null;
SeeFrame sf = new SeeFrame();
String[] s = null;
SearchImage(SeeFrame sf){
File f = new File("e:\\");
SearchingImage(f);
this.sf = sf;
}
public void SearchingImage(File f){
String[] s= null;
File[] l = null;
l = f.listFiles();
for(int i=0;i<l.length;i++){
if(l[i].isDirectory()&&l[i].listFiles()!=null){
SearchingImage(l[i]);
}
else{
s = l[i].getAbsolutePath().split("\\.");
if(s[s.length-1].equals("jpg")) {
//sf.list.add(l[i].getName(), no);
ll.add(no, l[i]);
no++;
//System.out.println("zh");
}
}
}
}
public void ListShow(){//给list添加项
for(int i=0;i<ll.size();i++){
sf.list.add(ll.get(i).getName(),i);
//System.out.println("f");
sf.setTitle(ll.get(i).getAbsolutePath());
}
}
}
class SeeFrame extends Frame{
List list = new List();
SeePanel sp = new SeePanel();//用SeePanel sp显示图片
Button b2;
int num = 0;
public void launchFrame(){
setBounds(50, 50, 1200, 800);
setBackground(new Color(103,103,103));
Panel p1 = new Panel();
Panel p2 = new Panel();
Button b1 = new Button("搜索图片");//搜索图片
b2 = new Button("自动播放");
final SearchImage si = new SearchImage(this);
b1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
si.ListShow();
}});
//给b1添加监听器 调用si的ListShow方法就可以在list中添加图片名称
sp.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
if(list.getSelectedIndex() != -1){
sp.getFile(si.ll.get(list.getSelectedIndex()+num));
setTitle(si.ll.get(list.getSelectedIndex()+num).getAbsolutePath());
}
num = num +1;
}
});
//单击图片 也可浏览图片
b2.addActionListener(new ActionListener(){
int i = 0;
public void actionPerformed(ActionEvent e) {
Timer timer=new Timer();
timer.schedule(new TimerTask(){
public void run() {
sp.getFile(si.ll.get(i));
i = i+1;
setTitle(si.ll.get(i).getAbsolutePath());
}
}, 1000,1000);
}});
list.setBackground(new Color(40,40,40));
list.setForeground(Color.cyan);
list.addMouseListener(new MouseListener(){
public void mouseClicked(MouseEvent e) {
sp.getFile(si.ll.get(list.getSelectedIndex()));
setTitle(si.ll.get(list.getSelectedIndex()).getAbsolutePath());
num = 0;
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
});
//给list添加单机事件
sp.setPreferredSize(new Dimension(1100,800));//固定sp的大小
sp.setMinimumSize(new Dimension(1100,800));
p1.setPreferredSize(new Dimension(150,800));//固定list的大小
p1.setMaximumSize(new Dimension(150,800));
p1.setLayout(new BorderLayout());
p1.add(p2,BorderLayout.NORTH);
p1.add(list,BorderLayout.CENTER);
p2.add(b1);
p2.add(b2);
this.add(p1,BorderLayout.WEST);
this.add(sp,BorderLayout.CENTER);
this.pack();
this.setVisible(true);
this.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){setVisible(false);System.exit(0);}});
}
}
class SeePanel extends Panel{//接受图片文件将它变成图片显示出来
File f ;
public void getFile(File f){
this.f = f;
this.repaint();
}//接受个图片文件
public void paint(Graphics g){
Image image=null;
super.paint(g);
//File f =new File("C:\\Documents and Settings\\Administrator\\桌面\\1.jpg");
if(f!=null){
try{ image = ImageIO.read(f);}catch(Exception e){}}
if(image!=null){
g.drawImage(image,(this.getWidth()-image.getWidth(null))/2,(this.getHeight()-image.getHeight(null))/2,image.getWidth(null),image.getHeight(null),null);
}
}
}