Java實現簡單的圖片瀏覽器


第一次寫博客,不喜勿噴。

最近一個小師弟問我怎么用Java做圖片瀏覽器,感覺好久沒玩Java了,就自己動手做了一下。

學校的教程是用Swing來做界面的,所以這里也用這個來講。

首先要做個大概的界面出來,eclipse有一個很好用的插件叫做WindowBuilder,可以可視化編輯界面,自動幫你生成代碼。

界面如下:

可能有些同學不知道圖片該怎么弄出來,其實很簡單。

創建一個JLabel,然后里面不要寫字。JLabel有一個icon的屬性,照片就放在這里面。

這里要注意的是,WindowBuilder生成的界面代碼一般是放在構造方法里面的,里面的變量都是局部變量。而這個JLabel要設置為全局變量,因為之后的圖片切換要用到這個變量。

1 Img = new JLabel("");
2 Img.setIcon(new ImageIcon(" 這里寫照片的地址 "));
3 Img.setBounds(14, 13, 404, 257);
4 contentPane.add(Img);

因為時間有限,沒有做圖片自適應。這里貼一個圖片自適應的教程。

 

圖片自適應教程

 

然后我們只需要更換圖片的地址,就能讓JLabel顯示不同的圖片,實現圖片瀏覽器的功能。

首先我們可以給之前做好的“open”按鈕添加一個點擊事件,點擊后可以調用JFileChooser來瀏覽本地的文件,獲取到選中的文件地址,然后存入ImgList保存。

 1 public void actionPerformed(ActionEvent e) {  
 2 //初始化文件選擇器    
 3         JFileChooser jfc=new JFileChooser();  
 4         jfc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES );  
 5 //彈出選擇文件的界面        
 6         jfc.showDialog(new JLabel(), "選擇");  
 7         File file=jfc.getSelectedFile();
 8 //pasePath是一個分析文件的方法,主要是用於判斷讀取到的是文件夾還是文件,並將其中的圖片類型的文件地址存到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 void pasePath(String path) {
        imglist.clear();//清理掉之前的圖片地址。
         File file = new File(path);
//如果是文件,就分析文件的后綴名是不是jpg或者png,如果是就存進imglist。
         if (!file.isDirectory()) {
             String absolutepath=file.getAbsolutePath();
             String name=file.getName();
             String[] list = new String[] {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);
             }
//如果不是文件,就存是文件夾,按上一個if語句內的寫法,逐個分析文件夾內的文件。區別就是這個存進去的圖片地址可能有很多個。
         } 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 = new String[] {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);
                             }

                     }
             }

     }
    }

到這里,我們已經可以讀取到文件夾內的圖片了。然后我們要給“上一個”,“下一個”按鈕添加事件,在點擊的時候切換圖片。

其實就是很簡單的一個判斷語句,這是“上一個”按鈕的判斷語句。

如果imglist的大小大於0,說明列表內有東西。然后判斷,如果現在讀取的這個照片是0,那么肯定就沒有上一個了,就讀取最后一張照片。

我在這里用了一個全局變量 nowindex 表示當前讀取到的圖片,然后根據這個進行加減或賦值就可以進行切換了。

判斷后重新設置圖片的地址,就可以實現切換圖片了。

“下一個”的事件就反過來做就行了。

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]));
}

最后的運行結果:

感謝閱讀~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM