معاينة الصورة في المكون JFileChooser قبل فتحها

اذهب الى الأسفل

معاينة الصورة في المكون JFileChooser قبل فتحها  Empty معاينة الصورة في المكون JFileChooser قبل فتحها

مُساهمة من طرف vbcoder في الجمعة ديسمبر 13, 2019 9:15 am

اليوم سوف أعطي مثالًا بسيطًا من شأنه أن يساعدك على تعلم كيفية تطبيق فتح او معاينة الصور فى المكون [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] كما هو موضح فى الصورة التالية :

معاينة الصورة في المكون JFileChooser قبل فتحها  284921187

و الفكرة بتتلخص فى استخدام [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] في [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] والتي تعرض ملف الصورة المحدد...في كل مرة يختار المستخدم ملف صورة ، سيتم رسم هذه الصورة على تلك اللوحة باستخدام طريقة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط].....

الشفرة 

الكود:

import java.awt.*;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.*;
import javax.imageio.ImageIO;
import javax.swing.*;

public class ImagePreviewFileChooser extends JPanel implements PropertyChangeListener {
 private JFileChooser jfc;
 private Image img;

 public ImagePreviewFileChooser(JFileChooser jfc) {
  this.jfc = jfc;
  Dimension sz = new Dimension(200, 200);
  setPreferredSize(sz);
 }

 public void propertyChange(PropertyChangeEvent evt) {
  try {
   System.out.println("updating");
   File file = jfc.getSelectedFile();
   updateImage(file);
  } catch (IOException ex) {
   System.out.println(ex.getMessage());
   ex.printStackTrace();
  }
 }

 public void updateImage(File file) throws IOException {
  if (file == null) {
   return;
  }
  img = ImageIO.read(file);
  repaint();
 }

 public void paintComponent(Graphics g) {
  // fill the background
  g.setColor(Color.gray);
  g.fillRect(0, 0, getWidth(), getHeight());

  if (img != null) {
   // calculate the scaling factor
   int w = img.getWidth(null);
   int h = img.getHeight(null);
   int side = Math.max(w, h);
   double scale = 200.0 / (double) side;
   w = (int) (scale * (double) w);
   h = (int) (scale * (double) h);
   // draw the image
   g.drawImage(img, 0, 0, w, h, null);

   // draw the image dimensions
   String dim = w + " x " + h;
   g.setColor(Color.black);
   g.drawString(dim, 31, 196);
   g.setColor(Color.white);
   g.drawString(dim, 30, 195);
  } else {
   // print a message
   g.setColor(Color.black);
   g.drawString("Not an image", 30, 100);
  }
 }

 public static void main(String[] args) {
  JFileChooser jfc = new JFileChooser();
  ImagePreviewFileChooser preview = new ImagePreviewFileChooser(jfc);
  jfc.addPropertyChangeListener(preview);
  jfc.setAccessory(preview);
  jfc.showOpenDialog(null);
 }

}
vbcoder
vbcoder
...
...

تاريخ التسجيل : 18/11/2018
المساهمات : 39
النقاط : 67
التقيم : 4
الدولة : مصر
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

معاينة الصورة في المكون JFileChooser قبل فتحها  Empty رد: معاينة الصورة في المكون JFileChooser قبل فتحها

مُساهمة من طرف أحمد مناع في السبت يناير 18, 2020 3:24 pm

كود مهم للغاية 

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 1002
النقاط : 201794
التقيم : 120
الدولة : مصر
الجنس : ذكر

https://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى