java 简单图片浏览器_Java实现简单的图片浏览器
第一次寫(xiě)博客,不喜勿噴。
最近一個(gè)小師弟問(wèn)我怎么用Java做圖片瀏覽器,感覺(jué)好久沒(méi)玩Java了,就自己動(dòng)手做了一下。
學(xué)校的教程是用Swing來(lái)做界面的,所以這里也用這個(gè)來(lái)講。
首先要做個(gè)大概的界面出來(lái),eclipse有一個(gè)很好用的插件叫做WindowBuilder,可以可視化編輯界面,自動(dòng)幫你生成代碼。
界面如下:
可能有些同學(xué)不知道圖片該怎么弄出來(lái),其實(shí)很簡(jiǎn)單。
創(chuàng)建一個(gè)JLabel,然后里面不要寫(xiě)字。JLabel有一個(gè)icon的屬性,照片就放在這里面。
這里要注意的是,WindowBuilder生成的界面代碼一般是放在構(gòu)造方法里面的,里面的變量都是局部變量。而這個(gè)JLabel要設(shè)置為全局變量,因?yàn)橹蟮膱D片切換要用到這個(gè)變量。
1 Img = new JLabel("");2 Img.setIcon(new ImageIcon(" 這里寫(xiě)照片的地址 "));3 Img.setBounds(14, 13, 404, 257);4 contentPane.add(Img);
因?yàn)闀r(shí)間有限,沒(méi)有做圖片自適應(yīng)。這里貼一個(gè)圖片自適應(yīng)的教程。
然后我們只需要更換圖片的地址,就能讓JLabel顯示不同的圖片,實(shí)現(xiàn)圖片瀏覽器的功能。
首先我們可以給之前做好的“open”按鈕添加一個(gè)點(diǎn)擊事件,點(diǎn)擊后可以調(diào)用JFileChooser來(lái)瀏覽本地的文件,獲取到選中的文件地址,然后存入ImgList保存。
1 public voidactionPerformed(ActionEvent e) {2 //初始化文件選擇器
3 JFileChooser jfc=newJFileChooser();4 jfc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES );5 //彈出選擇文件的界面
6 jfc.showDialog(new JLabel(), "選擇");7 File file=jfc.getSelectedFile();8 //pasePath是一個(gè)分析文件的方法,主要是用于判斷讀取到的是文件夾還是文件,并將其中的圖片類(lèi)型的文件地址存到ImgList中。
9 pasePath(file.getAbsolutePath());10 //最后顯示讀取到的第一張圖片。
11 if(imglist.size()>0) {12 String[] list = (String[])imglist.get(0);13 Img.setIcon(new ImageIcon(list[0]));14 }15 }
//分析文件的方法
public voidpasePath(String path) {
imglist.clear();//清理掉之前的圖片地址。
File file = newFile(path);//如果是文件,就分析文件的后綴名是不是jpg或者png,如果是就存進(jìn)imglist。
if (!file.isDirectory()) {
String absolutepath=file.getAbsolutePath();
String name=file.getName();
String[] list= newString[] {absolutepath,name};
String[] strArray= file.getName().split("\\.");
System.out.println(strArray[strArray.length-1]);if(strArray[strArray.length-1].equals("jpg")||strArray[strArray.length-1].equals("png")) {
imglist.add(list);
}//如果不是文件,就存是文件夾,按上一個(gè)if語(yǔ)句內(nèi)的寫(xiě)法,逐個(gè)分析文件夾內(nèi)的文件。區(qū)別就是這個(gè)存進(jìn)去的圖片地址可能有很多個(gè)。
} else if(file.isDirectory()) {
System.out.println("文件夾");
String[] filelist=file.list();for (int i = 0; i < filelist.length; i++) {
File readfile= new File(path + "\\" +filelist[i]);if (!readfile.isDirectory()) {
String absolutepath=readfile.getAbsolutePath();
String name=readfile.getName();
String[] list= newString[] {absolutepath,name};
String[] strArray= readfile.getName().split("\\.");
System.out.println(strArray[strArray.length-1]);if(strArray[strArray.length-1].equals("jpg")||strArray[strArray.length-1].equals("png")) {
imglist.add(list);
}
}
}
}
}
到這里,我們已經(jīng)可以讀取到文件夾內(nèi)的圖片了。然后我們要給“上一個(gè)”,“下一個(gè)”按鈕添加事件,在點(diǎn)擊的時(shí)候切換圖片。
其實(shí)就是很簡(jiǎn)單的一個(gè)判斷語(yǔ)句,這是“上一個(gè)”按鈕的判斷語(yǔ)句。
如果imglist的大小大于0,說(shuō)明列表內(nèi)有東西。然后判斷,如果現(xiàn)在讀取的這個(gè)照片是0,那么肯定就沒(méi)有上一個(gè)了,就讀取最后一張照片。
我在這里用了一個(gè)全局變量 nowindex 表示當(dāng)前讀取到的圖片,然后根據(jù)這個(gè)進(jìn)行加減或賦值就可以進(jìn)行切換了。
判斷后重新設(shè)置圖片的地址,就可以實(shí)現(xiàn)切換圖片了。
“下一個(gè)”的事件就反過(guò)來(lái)做就行了。
if(imglist.size()>0) {if(nowindex==0) {
nowindex=imglist.size()-1;
}else{
nowindex= nowindex-1;
}
String[] list=(String[])imglist.get(nowindex);
Img.setIcon(new ImageIcon(list[0]));
}
最后的運(yùn)行結(jié)果:
感謝閱讀~
總結(jié)
以上是生活随笔為你收集整理的java 简单图片浏览器_Java实现简单的图片浏览器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: qqsafe病毒 arp网站挂马 原理剖
- 下一篇: Silverlight 2 应用程序部署