منتدى مصر التقني
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

تعلم JavaFx ..مقال23_ واجهة المستخدم الرسومية _ الكلاس FileChooser

اذهب الى الأسفل

تعلم JavaFx ..مقال23_ واجهة المستخدم الرسومية _ الكلاس FileChooser Empty تعلم JavaFx ..مقال23_ واجهة المستخدم الرسومية _ الكلاس FileChooser

مُساهمة من طرف زهراء الجمعة أكتوبر 19, 2018 7:02 pm

أهلا بكم

الكلاس FileChooser يستخدم للحصول على نافذة جاهزة و مخصصة لجعل المستخدم قادر على فتح ملفات موجودة على حاسوبه مباشرةً من تطبيقه و يتيح له أيضاً إظهار نافذة تساعده في تحديد المكان الذي يريد أن يحفظ فيه ملفاته.

ملاحظة: الكلاس FileChooser تابع للحزمة javafx.stage و ليس للحزمة javafx.scene.controls كما هو حال باقي العناصر التي شرحناها سابقاً...لكننا أضفناه في قسم "عناصر واجهة المستخدم" هنا لأنه يعتبر من العناصر المهمة في JavaFX حيث يتيح لك التعامل مباشرةً مع الملفات الموجودة على جهاز المستخدم.

طريقة التعامل معه :


إفتراضياً الـ FileChooser يتيح للمستخدم اختيار و رؤية أي نوع من الملفات الموجودة على جهازه مهما كان نوعها ( MP4 - MP3 - JPG - PNG - TXT الخ.. ) لكنك تستطيع إجبار المستخدم على اختيار أو حفظ أنواع محددة من الملفات من خلال إضافة فلاتر تضيفها على كائن FileChooser. و يمكنك جعل المستخدم قادر على فتح ملف واحد أو فتح عدة ملفات في وقت واحد.


  • لجعل كائن الـ FileChooser يظهر نافذة خاصة لجعل المستخدم يختار الملف الذي يريد فتحه من التطبيق, قم باستدعاء الدالة الـ showOpenDialog().
  • لجعل كائن الـ FileChooser يظهر نافذة خاصة لجعل المستخدم يختار الملفات التي يريد فتحها من التطبيق, قم باستدعاء الدالة الـ showOpenMultipleDialog().
  • لجعل كائن الـ FileChooser يظهر نافذة خاصة لجعل المستخدم يختار الملف الذي يريد فته من التطبيق, قم باستدعاء الدالة الـ showSaveDialog().



أهم دوال الكلاس FileChooser

الكود:
public final void setTitle(String value)
تستخدم لإضافة عنوان لكائن الـ FileChooser الذي قام باستدعائها... الباراميتر value نمرر نص يمثل العنوان الذي نريد وضعه للـ FileChooser.

الكود:
public File showOpenDialog(Window ownerWindow)

تظهر نافذة منبثقة أمام المستخدم تتيح له تحديد الملف الموجود على حاسوبه و الذي يريد أن يفتحه من التطبيق.هذه النافذة تحتوي على زر Cancel و زر Open.

مكان الباراميتر ownerWindow نمرر كائن يمثل نافذة التطبيق الحالية التي نريدها أن تنتظر ريثما يقوم المستخدم بإختيار ملف.أو نضع القيمة null لجعل المستخدم قادر على التعامل مع النافذة المنبثقة و نافذة التطبيق في وقت واحد.

عند إغلاق النافذة المنبثقة فإنها ترجع كائن من الكلاس File يمثل الملف الذي قام المستخدم بتحديده عندما قام بالنقر على الزر Open.
أو ترجع null في حال قام بإغلاق النافذة بدون أن يختار أي ملف

الكود:
public List<File> showOpenMultipleDialog(Window ownerWindow)
تظهر نافذة منبثقة أمام المستخدم تتيح له تحديد الملف الموجودة على حاسوبه و التي يريد أن يفتحها ليراها فقط من التطبيق.هذه النافذة تحتوي على زر Cancel و زر Open.

مكان الباراميتر ownerWindow نمرر كائن يمثل نافذة التطبيق الحالية التي نريدها أن تنتظر ريثما يقوم المستخدم بإختيار ملف.أو نضع القيمة null لجعل المستخدم قادر على التعامل مع النافذة المنبثقة و نافذة التطبيق في وقت واحد.

عند إغلاق النافذة المنبثقة فإنها ترجع كائن من الكلاس List يحتوي على مجموعة كائنات من الكلاس File تمثل الملفات التي قام المستخدم بتحديدها عندما قام بالنقر على الزر Open.أو ترجع null في حال قام بإغلاق النافذة بدون أن يختار أي ملف.

ترمي الإستثناء UnsupportedOperationException في حال إجراء أي تعديل على ملف موجود في ضمن مجموعة الملفات التي تم إرجاعها.


الكود:
public File showSaveDialog(Window ownerWindow)
تظهر نافذة منبثقة أمام المستخدم تتيح له تحديد مسار و إسم الملف الذي يريد حفظه على حاسوبه.هذه النافذة تحتوي على زر Cancel و زر Save.

مكان الباراميتر ownerWindow نمرر كائن يمثل نافذة التطبيق الحالية التي نريدها أن تنتظر ريثما يقوم المستخدم بتحديد مسار الملف و إسمه.
أو نضع القيمة null لجعل المستخدم قادر على التعامل مع النافذة المنبثقة و نافذة التطبيق في وقت واحد.

عند إغلاق النافذة المنبثقة فإنها ترجع كائن من الكلاس File يمثل مسار الملف الذي قام المستخدم بحفظه عندما قام النقر على الزر Save.
أو ترجع null في حال قام بإغلاق النافذة و لم يحفظ الملف.

الكود:
public ObservableList<FileChooser.ExtensionFilter> getExtensionFilters()
تستخدم لتحديد إمتداد الملفات ( Files Extension ) التي يستطيع المستخدم إختيارها, أي لإضافة الفلاتر.

فعلياً, هذه الدالة ترجع لك كائن الـ ObservableList الذي يمثل لائحة الفلاتر الخاصة بالكائن FileChooser الذي قام باستدعائها و التي يمكنك من خلالها إضافة فلاتر جديدة.

ملاحظة: أول فلتر تضيفه فيها, يظهر مختاراً بشكل إفتراضي عند إظهار الكائن FileChooser و طبعاً يستطيع المستخدم أن يختار الفيلتر الذي يريده من القائمة.

كيفية إنشاءه برمجيا

يتم إنشاءة على النحو التالى :

1_إستيراد المكتبة stage وتحدديد الكلاس FileChooser

الكود:
import javafx.stage.FileChooser;

2_إنشاء كائن جديد من الكلاس FileChooser الذي يمثل نافذة خاصة تتيح للمستخدم إختيار ملف

الكود:
FileChooser fileChooser = new FileChooser();

3_ وضع عنوان لمربع الاختيار

الكود:
fileChooser.setTitle("Open Resource File");

المثال الكامل التالي يعلمك طريقة إنشاء كائن من الكلاس FileChooser لإظهار File Chooser Dialog و معرفة إذا تم النقر على الزر Open أم لا.

الكود:
import java.io.File;
import javafx.application.Application;
import javafx.stage.FileChooser;
import javafx.stage.Stage;
 
public class Main extends Application {
 
    @Override
    public void start(Stage stage) {
        
        // و الذي يمثل نافذة خاصة تتيح للمستخدم إختيار ملف FileChooser هنا قمنا بإنشاء كائن من الكلاس
        FileChooser fileChooser = new FileChooser();

        // FileChooser هنا قمنا بوضع عنوان للكائن
        fileChooser.setTitle("Open Resource File");
        
        // لتخزين الملف الذي قد يختاره المستخدم من الحاسوب selectedFile و قمنا بتجهيز الكائن showOpenDialog() بواسطة الدالة fileChooser هنا قمنا بإظهار الكائن
        File selectedFile = fileChooser.showOpenDialog(stage);
        
        // Open فهذا يعني أن المستخدم قام باختيار ملف على جهازه و نقر على الزر null لا تساوي selectedFile في حال كانت قيمة الكائن
        if( selectedFile != null )
        {
            // هنا من المفترض أن تضع الأوامر التي سيتم تنفيذها في حال قام المستخدم بإختيار ملف ما
        }
        
        // الأساسي في التطبيق stage حتى لا يظل البرنامج معلقاً بسبب أنه لم يتم إغلاق الـ fileChooser هنا قمنا بإغلاق التطبيق مباشرةً عند إغلاق الـ
        System.exit(0);

    }
 
    // هنا قمنا بتشغيل التطبيق
    public static void main(String[] args) {
        launch(args);
    }
 
}

و النتيجة على النحو التالى :

تعلم JavaFx ..مقال23_ واجهة المستخدم الرسومية _ الكلاس FileChooser Example-1


طريقة تحديد نوع الملفات التي يمكن للمستخدم إختيارها في الـFileChooser

يمكنك فلترة نوع الملفات التى يسمح للمستخدم ادراجها عن طريق الشفرة التالية :

الكود:
 fileChooser.getExtensionFilters().addAll(
            new ExtensionFilter("Text Files", "*.txt"),
            new ExtensionFilter("Java Files", "*.java"),
            new ExtensionFilter("Web Files", "*.html", "*.css", "*.js", "*.php"),
            new ExtensionFilter("All Files", "*.*")
        );

و النتيجة على النحو التالى :


تعلم JavaFx ..مقال23_ واجهة المستخدم الرسومية _ الكلاس FileChooser Example-2
زهراء
زهراء
........
........

تاريخ التسجيل : 18/02/2011
المساهمات : 438
النقاط : 769
التقيم : 67
الدولة : مصر
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

تعلم JavaFx ..مقال23_ واجهة المستخدم الرسومية _ الكلاس FileChooser Empty رد: تعلم JavaFx ..مقال23_ واجهة المستخدم الرسومية _ الكلاس FileChooser

مُساهمة من طرف أحمد مناع الجمعة أكتوبر 19, 2018 8:19 pm

تحياتى لكي استاذة زهراء على كل ما تقدمية للمحتوي العربي من جهد

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 1108
النقاط : 202034
التقيم : 144
الدولة : مصر
الجنس : ذكر

https://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى