♨️جلسه بیست و یکم - کلاس JFileChooser
خب به ایستگاه کلاس JFileChooser یکی دیگر از اجزای گرافیکی یا component های موجود در پکیج Swing جاوا رسیدیم. کلاس JFileChooser همان طور که از اسمش پیداست یک مکانیزم ساده است که انتخاب یک فایل در محلی از کامپیوتر توسط کاربر را فراهم میکند.
برای درک بهتر نسبت به شکل ظاهری این اجزای گرافیکی در برنامه تصویر(1) را مشاهده کنید:
• همان طور که در تصویر(1) مشاهده میکنید، در کامپیوتر با FileChooser برای انتخاب فایل مورد نظر در محلی از کامپیوتر زیاد برخورد کرده ایم.
• برای استفاده از این کلاس در برنامه خود باید پکیج زیر را بالای کلاس برنامه خود import کنید:
import javax.swing.JFileChooser; |
یا پکیج زیر رو نیز میتوانید استفاده کنید:
import javax.swing.*; |
• این پکیج همه کلاس های گرافیکی موجود در Swing جاوا را شامل میشود.
• سازنده های پرکاربرد کلاس JFileChooser :
توضیحات رو بیخیال! بریم سراغ مثال که چه چیزی بهتر از مثال:-)
مثال:
package fileChooser_javalike ; import javax.swing.*; import java.awt.event.*; import java.io.*; public class FileChooserExample extends JFrame implements ActionListener { JMenuBarmb; JMenufile; JMenuItemopen; JTextAreata; FileChooserExample() { open = new JMenuItem("Open File"); open.addActionListener(this); file = new JMenu("File"); file.add(open); mb = new JMenuBar(); mb.setBounds(0, 0, 800, 20); mb.add(file); ta = new JTextArea(800, 800); ta.setBounds(0, 20, 800, 800); add(mb); add(ta); } public void actionPerformed(ActionEvent e) { if (e.getSource() == open) { JFileChooser fc = new JFileChooser(); int i = fc.showOpenDialog(this); if (i == JFileChooser.APPROVE_OPTION) { File f = fc.get select edFile(); String filepath = f.getPath(); try { BufferedReader br = new BufferedReader(new FileReader( filepath)); String s1 = "", s2 = ""; while ((s1 = br.readLine()) != null) { s2 += s1 + "\n"; } ta.setText(s2); br.close(); } catch (Exception ex) { ex. print StackTrace(); } } } } public static void main(String[] args) { FileChooserExample om = new FileChooserExample(); om.setSize(500, 500); om.setLayout(null); om.setVisible(true); om.setDefaultCloseOperation(EXIT_ON_CLOSE); } } |
خروجی: تصاویر(2)و(3)و(4)
• در برنامه بالا ما یک فایل متنی با فرمت txt را باز کردیم و محتوای درون آن را داخل یک TextArea ریختیم.
توضیحات:
public class FileChooserExample extends JFrame implements ActionListener { |
کلاس ما برای استفاده از متد actionPerformed اینترفیس ActionListener را implements کرده است.
1. open = new JMenuItem("Open File"); 2. open.addActionListener(this); 3. file = new JMenu("File"); 4. file.add(open); 5. mb = new JMenuBar(); 6. mb.setBounds(0, 0, 800, 20); 7. mb.add(file); 8. ta = new JTextArea(800, 800); 9. ta.setBounds(0, 20, 800, 800); 10. add(mb); 11. add(ta); |
• در سازنده کلاس خود موارد زیر را انجام داده ایم: ( توضیحات اشاره به شماره هر خط در کد بالا دارد)
1. ایجاد یک شی از نوع کلاس JMenuItem که رشته "Open File" را به عنوان پارامتر به سازنده ان داده ایم. شی از نوع این کلاس آیتم های منو ما را تشکیل میدهد.
2. به آیتم خود یک ActionListener اضاف کرده ایم که برای دریافت رویداد های مربوط به کلیک کردن روی آیتم مورد نظر استفاده میشود.
3. از کلاس JMenu نیز شی ساخته ایم. رشته "File" که نام منو ما را تشکیل میدهد را به عنوان پارامتر به سازنده این کلاس داده ایم.شی ایجاد شده از این کلاس نقش منو ما را بازی میکند.
4. آیتم منو خود را به منو موجود در منوبار اضاف کرده ایم.
5. از کلاس JMenuBar شی ایجاد کرده ایم. شی ایجاد شده از این کلاس نقش منوبار ما را بازی خواهد کرد.
6. تعیین ابعداد و مختصات منوبار
7. اضاف کردن منو به منوبار
8. ایجاد یک
9. تعیین ابعداد و مختصات TextArea
10. اضاف کردن منوبار به فریم
11. اضاف کردن TextArea به فریم
1. public void actionPerformed(ActionEvent e) { 2. if (e.getSource() == open) { 3. JFileChooser fc = new JFileChooser(); 4. int i = fc.showOpenDialog(this); 5. if (i == JFileChooser.APPROVE_OPTION) { 6. File f = fc.get select edFile(); |
1. متد actionPerformed که وظیفه دریافت رویدادهای مربوط به اجزا یا component های گرافیکی را برعهده دارد. با هربار رویداد رخدادی خاص این متد صدا زده میشود و دستورات درون آن اجرا میشود.
2. این دستور منبع رویداد رخ داده در برنامه را پیدا میکند. و میگه اگر برابر شی open که از نوع کلاس JMenuItem هستش دستور مورد نظر را اجرا کند. دستور مورد نظر مربوط به شرط if
3. از کلاس JFileChooser شی ایجاد میکنیم.
int i = fc.showOpenDialog(this); |
4. ما از FileChooser برای انتخاب فایل در محلی از کامپیوتر استفاده میکنیم در اینجا تعیین کرده ایم که قصد داریم فایل را باز کنیم ( بخوانیم) برای این کار از متد showOpenDialog که پارامتر آن از نوع کلاس Component هستش استفاده کرده ایم کلمه کلیدی this به شی از کلاسمون که component یا اجزای گرافیکی JFrame را به ارث برده است اشاره دارد. بعد از انتخاب فایل موجود در کامپیوتر متد showOpenDialog یک ایندکس از نوع عدد صحیح را برای ما برمیگرداند.
if (i == JFileChooser.APPROVE_OPTION) { |
5. اینجا گفته ایندکسی که برگردانده شده اگر برابر مقدار JFileChooser.APPROVE_OPTION هستش دستور شرط رو اجرا کن.وقتی متد showOpenDialog صدا زده میشه پیام انتخاب فایل به صورت تصویر(6) نمایش داده میشود، با زدن دکمه open متد showOpenDialog مقدار 0 را برمی گرداند، با زدن دکمه cancel متد showOpenDialog مقدار 1 را برمیگرداند. خب دستور ثابت JFileChooser.APPROVE_OPTION نیز حاوی مقدار0 است که بیان گر موافقت در انتخاب فایل یا همان open کردن فایل است. مثلا دستور ثابت مربوط به cancel کردن برابر JFileChooser.CANCEL_OPTION است وقتی دکمه cancel را انتخاب میکنیم مقدار 1 برای ما برگردانده میشه که برابر دستور JFileChooser.CANCEL_OPTION است.
نکته: متد showSaveDialog که درون کلاس JFileChooser است برای نمایش پیام save کردن است. تصویر(7)
6. حالا اگر انتخاب ما دکمه open بود فایل موجود در محل کامپیوتر خوانده میشه و درون یک شی از نوع کلاس File ریخته میشود.
ادامه این جلسه آموزشی را بصورت کتاب الکترونیکی (PDF) در لینک زیر دانلود کنید.....
بستن *نام و نام خانوادگی * پست الکترونیک * متن پیام |
دوره های آموزشی برنامه نویسی
انجام پروژه های برنامه نویسی
تدریس خصوصی برنامه نویسی
بیش از 7 سال از فعالیت جاواپرو میگذرد
جاواپرو دارای مجوز نشر دیجیتال از وزارت فرهنگ و ارشاد اسلامی است
جهت ارتباط مستقیم با جاواپرو در واتساپ و تلگرام :
09301904690