منتدى مصر التقني
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

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

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

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

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

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

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

و الفكرة بتتلخص فى استخدام #JPanel في #JFilechooser والتي تعرض ملف الصورة المحدد...في كل مرة يختار المستخدم ملف صورة ، سيتم رسم هذه الصورة على تلك اللوحة باستخدام طريقة #paintComponent.....

الشفرة 

الكود:

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
المساهمات : 47
النقاط : 77
التقيم : 4
الدولة : مصر
الجنس : ذكر

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

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

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

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

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

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

https://egy-tech.forumegypt.net

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

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

ََ

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


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