首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

图片搜寻浏览程序

2012-10-09 
图片搜索浏览程序import javax.imageio.* import java.awt.*import java.awt.List import java.io.*im

图片搜索浏览程序
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);
         }
}

}

热点排行