Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

Swingطريقة إظهار JFileChooser لإختيار ملف من الجهاز ثم عرض محتواه في JTextArea

المثال التالي يعلمك طريقة إظهار File Chooser Dialog لقراءة محتوى أي ملف.
هنا سيقوم المستخدم بإختيار أي ملف من جهازه بواسطة File Chooser Dialog, بعدها سنعرض له محتوى الملف الذي إختاره في Text Area.


مثال

Main.java
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 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();
// مرئية frame هنا جعلنا الـ
frame.setVisible(true);
// Open هنا قمنا بوضع الأوامر التي نريد تنفيذها عند النقر على الـ
open.addActionListener(new ActionListener() {
@Override
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);
}
}
}
});
}
}
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 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(); // مرئية frame هنا جعلنا الـ frame.setVisible(true); // Open هنا قمنا بوضع الأوامر التي نريد تنفيذها عند النقر على الـ open.addActionListener(new ActionListener() { @Override 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.

إختر أي ملف نصي من جهازك ثم أنقر على الزر Open.

طريقة جعل المستخدم يفتح ملف بواسطة jfilechooser في جافا

لاحظ أنه سيقوم بإخفاء الـ Color Chooser Dialog و عرض نص الملف الذي إخترته في الـ Text Area.

طريقة قراءة محتوى الملف الذي إختاره المستخدم في ال jfilechooser في textarea في جافا