Swingطريقة تحديد أنواع الملفات التي يمكن للمستخدم رؤيتها و إختيارها في الـ JFileChooser
المثال التالي يعلمك طريقة تحديد أنواع الملفات التي يمكن للمستخدم رؤيتها و إختيارها في الـ File Chooser Dialog.
مثال
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing.JFileChooser; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.filechooser.FileNameExtensionFilter; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import javax.swing.JOptionPane; public class Main { public static void main(String[] args) { JFrame frame = new JFrame("JFileChooser demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس frame.setSize(520, 400); // هنا قمنا بتحديد حجم النافذة. عرضها 520 و طولها 400 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج // هنا قمنا بتعريف كل شيء وضعناه في شريط القوائم JMenuBar menuBar = new JMenuBar(); JMenu file = new JMenu("File"); JMenuItem open = new JMenuItem("Open File"); // file في القائمة open في شريط القوائم. ثم وضعنا العنصر file هنا وضعنا قائمة الـ menuBar.add(file); file.add(open); // عند الحاجة Scroll Bar حتى يظهر Scroll Pane و وضعناه بداخل Text Area هنا قمنا بتعريف JTextArea textArea = new JTextArea(); JScrollPane textAreaScroller = new JScrollPane(textArea); // frame في الـ textAreaScroller و الـ menuBar هنا قمنا بوضع الـ frame.setJMenuBar(menuBar); frame.add(textAreaScroller); // File Chooser Dialog و الذي سنستخدمه لإظهار JFileChooser هنا قمنا بتعريف كائن من الكلاس JFileChooser chooser = new JFileChooser(); // File Chooser Dialog يمثل إمتداد الملفات التي نريدها أن تظهر في الـ FileNameExtensionFilter هنا قمنا بإنشاء كائن من الكلاس FileNameExtensionFilter filter = new FileNameExtensionFilter("text or java files", "txt", "java" ); chooser.setFileFilter(filter); // مرئية frame هنا جعلنا الـ frame.setVisible(true); // Open هنا قمنا بوضع الأوامر التي نريد تنفيذها عند النقر على الـ open.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // frame فوق الـ Color Chooser Dialog سيتم إظهار الـ int returnedValue = chooser.showOpenDialog(frame); // Open ففي حال قام المستخدم بإختيار ملف ثم نقر على if(returnedValue == JFileChooser.APPROVE_OPTION) { // سيتم حفظ مساره File selectedFile = chooser.getSelectedFile(); String filepath = selectedFile.getPath(); try { // ثم قراءة محتواه سطراً سطراً BufferedReader br = new BufferedReader(new FileReader(filepath)); String line = ""; String text = ""; while( (line=br.readLine()) != null ) text += line + "\n"; // ثم إغلاق الإتصال مع الملف textArea في الأخير سيتم وضعه كنص في الـ textArea.setText(text); br.close(); } catch(IOException ioe) { // Option Pane في حال حدث خطأ سيتم عرضه في JOptionPane.showMessageDialog(null, ioe.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); } } } }); } }
ستظهر لك النافذة التالية عند التشغيل.
أنقر على الزر Open File لإظهار الـ Color Chooser Dialog.
لاحظ أنه يمكنك رؤية و إختيار الملفات التي إمتدادها .txt و .java
بعد إختيار الملف أنقر على الزر Open.
لاحظ أنه سيقوم بإخفاء الـ Color Chooser Dialog و عرض نص الملف الذي إخترته في الـ Text Area.