1. 程式人生 > >java中swing上傳圖片讀取顯示

java中swing上傳圖片讀取顯示

public static void eventOnImport(JButton upload) {
 ByteArrayOutputStream baos = null;
 JFileChooser chooser = new JFileChooser();
 chooser.setMultiSelectionEnabled(true);
          
 /** 過濾檔案型別 * */
 FileNameExtensionFilter filter = new FileNameExtensionFilter("請選擇上傳圖片",
   "jpg","png","jpeg","bmp");
 chooser.setFileFilter(filter);
 int returnVal = chooser.showOpenDialog(upload);
 if (returnVal == JFileChooser.APPROVE_OPTION) {
  /** 得到選擇的檔案* */
  File[] arrfiles = chooser.getSelectedFiles();
  if (arrfiles == null || arrfiles.length == 0) {
   return;
  }
  FileInputStream input = null;
  FileOutputStream out = null;
  String path = "images/";
  try {
   for (File f : arrfiles) {
    File dir = new File(path);
    dir.listFiles();
    fileNamnPath = path+f.getName();
    new URL(fileNamnPath);
    
    input = new FileInputStream(f);
    byte[] buffer = new byte[1024];
    File des = new File(path, f.getName());
    out = new FileOutputStream(des);
    int len = 0;
    baos = new ByteArrayOutputStream();
    while (-1 != (len = input.read(buffer))) {
   baos.write(buffer); 
        out.write(buffer, 0, len);
    }


    ImageIcon IC = new ImageIcon(baos.toByteArray());
IC.setImage(IC.getImage().getScaledInstance(200, 200, Image.SCALE_DEFAULT));
showPic.setIcon(IC);
    
    out.close();
    input.close();
   }
   




  } catch (FileNotFoundException e1) {
   JOptionPane.showMessageDialog(null, "上傳失敗!", "提示",
     JOptionPane.ERROR_MESSAGE);
   e1.printStackTrace();
  } catch (IOException e1) {
   JOptionPane.showMessageDialog(null, "上傳失敗!", "提示",
     JOptionPane.ERROR_MESSAGE);
   e1.printStackTrace();
  }
 }
}