تعلم كيفية ظهور الصورة للمعاينة فى JFileChooser
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: واجهة المستخدم الرسومية Java Swing
صفحة 1 من اصل 1 • شاطر
تعلم كيفية ظهور الصورة للمعاينة فى JFileChooser
بسم الله الرحمن الرحيم
أهلا بكم
اليوم كيفية اظهار الصور فى مربع اختيار الملفات JFileChooser للمعاينة قبل فتحها وتوجد طرق كثيرة لفعل ذلك ولكنى أخترت اسهلها ....فمثلا سنقوم بانشاء عنصر تسمية label ووضع صورة فقط به ومن خلال الاسلوب Accessory Components التى يتيحها لنا العنصر JFileChooser يمكننا وضع عنصر التسمية الذى يحمل الصورة وهى على النحو التالى :
1_ إستيراد مكتبات العمل اللازمة وهى على النحو التالى :
2_ بعد ذلك نقوم بانشاء فئة و ليكن باسم ImagePreviewJFileChooser
3_بداخل الفئة السابقة سنقوم بكتابة الاكواد التالية :
_ الاعلان عن الكائنات الرسومية التى سوف نستخدمها فى المثال على النحو التالى :
_إنشاء المشيد
_إنشاء الطريقة createAndShowGUI و التى ستحتوى على كافة التعليمات التى ستنشىء النافذة و مربع الاختيار JFileChooser
الكود النهائى لعرض صورة فى مربع الاختيار JFileChooser على النحو التالى :
و النتيجة على النحو التالى :
أهلا بكم
اليوم كيفية اظهار الصور فى مربع اختيار الملفات JFileChooser للمعاينة قبل فتحها وتوجد طرق كثيرة لفعل ذلك ولكنى أخترت اسهلها ....فمثلا سنقوم بانشاء عنصر تسمية label ووضع صورة فقط به ومن خلال الاسلوب Accessory Components التى يتيحها لنا العنصر JFileChooser يمكننا وضع عنصر التسمية الذى يحمل الصورة وهى على النحو التالى :
1_ إستيراد مكتبات العمل اللازمة وهى على النحو التالى :
- الكود:
import javax.swing.*;
import java.awt.*;
import java.beans.*;
import javax.swing.filechooser.*;
import java.awt.image.*;
import javax.imageio.*;
import java.io.*;
import java.util.concurrent.*;
import java.awt.event.*;
2_ بعد ذلك نقوم بانشاء فئة و ليكن باسم ImagePreviewJFileChooser
- الكود:
class ImagePreviewJFileChooser extends JFrame
{
3_بداخل الفئة السابقة سنقوم بكتابة الاكواد التالية :
_ الاعلان عن الكائنات الرسومية التى سوف نستخدمها فى المثال على النحو التالى :
- الكود:
class ImagePreviewJFileChooser extends JFrame
{
JLabel img;
JButton open;
JFileChooser jf = new JFileChooser();
_إنشاء المشيد
- الكود:
public ImagePreviewJFileChooser()
{
createAndShowGUI();
}
_إنشاء الطريقة createAndShowGUI و التى ستحتوى على كافة التعليمات التى ستنشىء النافذة و مربع الاختيار JFileChooser
- خصائص النافذة
- الكود:
setTitle("Image Preview for JFileChooser");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new FlowLayout());
- إنشاء عنصر التسمية jlabel وتحديد حجمة
- الكود:
img=new JLabel();
img.setPreferredSize(new Dimension(175,175));
- إضافة عنصر التسمية jlabel كمكون إضافى الى مربع الاختيار مع جعله لا يقبل الا الصورة
- الكود:
jf.setAccessory(img);
jf.setAcceptAllFileFilterUsed(false);
- فلترة الملفات بحيث لا يسمح بظهور اى ملفات اخرى غير ملفات الصورة
- الكود:
FileNameExtensionFilter filter=new FileNameExtensionFilter("Image Files","jpg","jpeg","png","gif");
jf.setFileFilter(filter);
- إضافة خاصية تغيير المستمع بحيث يسمح بمعرفة الصورة المحدد عند تنقل الماوس بداخل JFileChooser على النحو التالى :
- الكود:
jf.addPropertyChangeListener(new PropertyChangeListener(){
public void propertyChange(final PropertyChangeEvent pe)
{
SwingWorker<Image,Void> worker=new SwingWorker<Image,Void>(){
protected Image doInBackground()
{
if(pe.getPropertyName().equals(JFileChooser.SELECTED_FILE_CHANGED_PROPERTY))
{
File f=jf.getSelectedFile();
try
{
FileInputStream fin=new FileInputStream(f);
BufferedImage bim=ImageIO.read(fin);
return bim.getScaledInstance(178,170,BufferedImage.SCALE_FAST);
}catch(Exception e){
img.setText(" Not valid image/Unable to read");
}
}
return null;
}
protected void done()
{
try
{
Image i=get(1L,TimeUnit.NANOSECONDS);
if(i==null) return;
img.setIcon(new ImageIcon(i));
}catch(Exception e){
img.setText(" Error occured.");
}
}
};
worker.execute();
}
});
الكود النهائى لعرض صورة فى مربع الاختيار JFileChooser على النحو التالى :
- الكود:
import javax.swing.*;
import java.awt.*;
import java.beans.*;
import javax.swing.filechooser.*;
import java.awt.image.*;
import javax.imageio.*;
import java.io.*;
import java.util.concurrent.*;
import java.awt.event.*;
public class Java1 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
new ImagePreviewJFileChooser();
}
}
class ImagePreviewJFileChooser extends JFrame
{
JLabel img;
JButton open;
JFileChooser jf = new JFileChooser();
public ImagePreviewJFileChooser()
{
createAndShowGUI();
}
private void createAndShowGUI()
{
setTitle("Image Preview for JFileChooser");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new FlowLayout());
img=new JLabel();
img.setPreferredSize(new Dimension(175,175));
jf.setAccessory(img);
jf.setAcceptAllFileFilterUsed(false);
FileNameExtensionFilter filter=new FileNameExtensionFilter("Image Files","jpg","jpeg","png","gif");
jf.setFileFilter(filter);
jf.addPropertyChangeListener(new PropertyChangeListener(){
public void propertyChange(final PropertyChangeEvent pe)
{
SwingWorker<Image,Void> worker=new SwingWorker<Image,Void>(){
protected Image doInBackground()
{
if(pe.getPropertyName().equals(JFileChooser.SELECTED_FILE_CHANGED_PROPERTY))
{
File f=jf.getSelectedFile();
try
{
FileInputStream fin=new FileInputStream(f);
BufferedImage bim=ImageIO.read(fin);
return bim.getScaledInstance(178,170,BufferedImage.SCALE_FAST);
}catch(Exception e){
img.setText(" Not valid image/Unable to read");
}
}
return null;
}
protected void done()
{
try
{
Image i=get(1L,TimeUnit.NANOSECONDS);
if(i==null) return;
img.setIcon(new ImageIcon(i));
}catch(Exception e){
img.setText(" Error occured.");
}
}
};
worker.execute();
}
});
open=new JButton("Open File Chooser");
add(open);
open.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae)
{
jf.showOpenDialog(null);
}
});
setSize(400,400);
setVisible(true);
}
}
و النتيجة على النحو التالى :
زهراء- ........
- تاريخ التسجيل : 18/02/2011
المساهمات : 438
النقاط : 769
التقيم : 67
الدولة :
الجنس :
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: واجهة المستخدم الرسومية Java Swing
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
أمس في 8:56 pm من طرف moslema_r
» شركة مكافحة حشرات في راس الخيمة
أمس في 8:34 pm من طرف moslema_r
» تطبيقIncogniton لإدارة ملفات تعريف متعددة للمتصفح
الأربعاء أبريل 24, 2024 3:51 pm من طرف زاكااا
» افضل شركة مكافحة النمل الابيض بالرياض
الإثنين أبريل 22, 2024 9:41 pm من طرف moslema_r
» Exemplary Сasual Dating - Verified Women
الخميس أبريل 18, 2024 9:18 pm من طرف wdqwd
» رش الدفان بالرياض
الخميس أبريل 18, 2024 7:11 pm من طرف moslema_r
» شركة تنظيف خزانات الشارقة
الخميس أبريل 18, 2024 6:57 pm من طرف moslema_r
» شركة مكافحة الفئران بالرياض
الإثنين أبريل 15, 2024 8:23 pm من طرف moslema_r
» افضل شركة كشف تسربات المياه بالباحة
الخميس أبريل 04, 2024 7:02 am من طرف gmalnagy
» ساعدوني وفهموني help me
الجمعة مارس 29, 2024 8:37 am من طرف linesoft