menusearch
javapro.ir
جستجو
۱۳۹۶/۴/۱ پنج شنبه
(0)
(0)
جلسه بیست و یکم - کلاس JFileChooser
جلسه بیست و یکم - کلاس JFileChooser
خب به ایستگاه کلاس JFileChooser یکی دیگر از اجزای گرافیکی یا component های موجود در پکیج Swing جاوا رسیدیم. کلاس JFileChooser همان طور که از اسمش پیداست یک مکانیزم ساده است که انتخاب یک فایل در محلی از کامپیوتر توسط کاربر را فراهم می کند.
برای درک بهتر نسبت به شکل ظاهری این اجزای گرافیکی در برنامه تصویر(1) را مشاهده کنید:

کلاس JFileChooser در جاوا

•    همان طور که در تصویر(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.getselectedFile();
                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.printStackTrace();
                }
            }
        }
    }

    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)

انتخاب فایل در جاوا

آموزش گرافیک در جاوا

SWING در جاوا

گرافیک در جاوا

•    در برنامه بالا ما یک فایل متنی با فرمت 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 fc.showOpenDialog(this);
5.    if (i == JFileChooser.APPROVE_OPTION) {
6.    File f = fc.getselectedFile();

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)

کاربرد FileChooser

showSaveDialog در جاوا

6.    حالا اگر انتخاب ما دکمه open بود فایل موجود در محل کامپیوتر خوانده میشه و درون یک شی از نوع کلاس File ریخته می شود.


ادامه این جلسه آموزشی را بصورت کتاب الکترونیکی (PDF) در لینک زیر دانلود کنید.....
 

این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)

آموزش آسان و ساده زبان برنامه نویسی جاوا
لینک دانلود
 


نشر این مطلب با ذکر منبع (لینک سایت) بلامانع است.
برای با خبر شدن از جدیدترین مطالب آموزشی جاوا عضو کانال تلگرام ما شوید.

نظرات کاربران
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

بستن
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

1 نظر
علی
چهارشنبه نوزدهم مهر ۹۶
پاسخ
()
()
علی
سلام،من دارم یه برنامه مثل نوت پد خیلی ساده مینویسم. تو قسمت طراحی گزینه save مشکل دارم، می خوام وقتی گزینه save رو میزنم همه متن موجود تو text area تو یه فایل text که کاربر مسیر و نامشو انتخاب میکنه ذخیره بشه. میشه کمکم کنید؟
طراحی سایتطراحی سایتسایت سازسایت سازفروشگاه سازفروشگاه ساز