إعلان
دورة تطوير التطبيقات باستخدام لغة JavaScript في هذه الدورة ستتعلم لغة جافا سكريبت, استخدام مكتبة React.js, بناء API الموقع بواسطة Node.js, تطوير تطبيق جوال باستخدام React Native, و في نهاية الدورة ستتعلم تطوير تطبيق محادثة شبيه بتطبيق WhatsApp. تعلم الآن
دورة تطوير واجهات المستخدم في هذه الدورة ستتعلم لغة HTML و لغة CSS و لغة JavaScript. من ناحية التطبيق العملي ستتعلم طريقة بناء واجهة متجر إلكتروني مكون من ست صفحات, تحويل خمسة تصاميم PSD إلى صفحات ويب, بناء واجهة مستخدم تشبه موقع يوتيوب, بناء لوحة تحكم إحترافية. تعلم الآن
تطوير تطبيقات باستخدام لغة بايثون في هذه الدورة ستتعلم أساسيات البرمجة بلغة بايثون وصولاً إلى التعامل مع أشهر أطر العمل (Flask و Django) و ستتعلم كيف تبني متجر إلكتروني يمكن للمستخدمين البيع و الشراء من خلاله. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة PHP في هذه الدورة ستتعلم لغة PHP من الصفر, استخدام إطار العمل Laravel بشرح مفصّل و عملي, كيفية تطوير شبكة اجتماعية تشبه Instagram, بناء API لتطبيق جوال وفق أسلوب RESTful, تطوير موقع إعلانات مبوبة, تطوير نظام إدارة محتوى CMS كامل. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة Ruby في هذه الدورة ستتعلم البرمجة بلغة Ruby إنطلاقاً من أبسط المفاهيم وحتى بناء تطبيق حقيقي, إستخدام إطار العمل Ruby on Rails بشرح مفصّل و عملي, بناء تطبيق حقيقي عبارة عن شبكة اجتماعية تشبه تويتر, تطوير مجتمع الكتروني يشبه حسوب I/O. تعلم الآن
دورة علوم الحاسوب هذه الدورة معدة لتكون مدخل لعلوم الحاسوب و لغات البرمجة حيث ستتعرف فيها على أنظمة التشغيل و ستتعمق في نظام لينكس و في كيفية التعامل معه من خلال موجه الأوامر, بالإضافة إلى قواعد البيانات و أساسيات الشبكات و الخوادم و مبادئ الحماية والأمان في الويب. تعلم الآن

    JavaFX طريقة تحديد مكان حفظ الملف بواسطة FileChooser

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


    مثال

    Main.java
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStreamWriter;
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import javafx.application.Application;
    import javafx.scene.Group;
    import javafx.scene.Scene;
    import javafx.scene.control.Alert;
    import javafx.scene.control.Alert.AlertType;
    import javafx.scene.control.Button;
    import javafx.scene.control.Label;
    import javafx.scene.control.TextArea;
    import javafx.stage.FileChooser;
    import javafx.stage.FileChooser.ExtensionFilter;
    import javafx.stage.Stage;
    
    public class Main extends Application {
    
        @Override
        public void start(Stage stage) {
    
    		// لتحديد الطريقة التي سنعرض بها الوقت على النافذة بعد أن يتم حفظ الملف dateFormat قمنا بتجهيز الكائن
            DateFormat dateFormat = new SimpleDateFormat("dd/MM/Y HH:mm:ss");
            
            // هنا قمنا بإنشاء جميع الأشياء التي سنضيفها في النافذة
            FileChooser fileChooser = new FileChooser();
            Button button = new Button("Save Now");
            Label label = new Label();
            TextArea textArea = new TextArea();
    
            // FileChooser هنا قمنا بوضع عنوان للكائن
            fileChooser.setTitle("Save File");
    
            // هنا قمنا بتحديد أنواع الملفات التي نريد إظهارها في قائمة تحديد أنواع الملفات التي يمكن للمستخدم أن يحفظها من التطبيق
            fileChooser.getExtensionFilters().addAll(
                new ExtensionFilter("Text Files", "*.txt"),
                new ExtensionFilter("Java Files", "*.java"),
                new ExtensionFilter("Web Files", "*.html", "*.css", "*.js", "*"),
                new ExtensionFilter("All Files", "*.*")
            );
    
            // هنا قمنا بتحديد مكان ظهور الأشياء التي سنضيفها في النافذة
            button.setTranslateX(20);
            button.setTranslateY(20);
            label.setTranslateX(140);
            label.setTranslateY(20);
            textArea.setTranslateX(20);
            textArea.setTranslateY(60);
    
            // هنا قمنا بتحديد حجم جميع الأشياء التي سنضيفها في النافذة
            button.setPrefSize(100, 30);
            label.setPrefSize(500, 30);
            textArea.setPrefSize(710, 420);
    
            // في النافذة Root Node لأننا ننوي جعله الـ Group هنا قمنا بإنشاء كائن من الكلاس
            Group root = new Group();
    
            // root هنا قمنا بإضافة جميع الأشياء في الكائن
            root.getChildren().add(button);
            root.getChildren().add(label);
            root.getChildren().add(textArea);
    
            // فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن
            Scene scene = new Scene(root, 750, 500);
    
            // هنا وضعنا عنوان للنافذة
            stage.setTitle("JavaFX FileChooser");
    
            // أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ
            stage.setScene(scene);
    
            // هنا قمنا بإظهار النافذة
            stage.show();
    
            // button هنا قمنا بتحديد ماذا سيحدث عند النقر على الكائن
            button.setOnAction((ActionEvent) -> {
                // لتخزين مسار و إسم و نوع الملف الذي يريد أن يحفظه المستخدم file و قمنا بتجهيز الكائن showSaveDialog() بواسطة الدالة fileChooser هنا قمنا بإظهار الكائن
                File file = fileChooser.showSaveDialog(stage);
                // Save فهذا يعني أن المستخدم قام باختيار إسم للملف الذي سيتم حفظه على جهازه و نقر على الزر null لا تساوي file في حال كانت قيمة الكائن
                if (file != null) {
                    // filePath هنا قمنا بحفظ مسار الملف في المتغير
                    String filePath = file.getPath();
                    try {
                        // يشير إلى الملف الذي سنكتب البيانات فيه و في حال لم يكن موجوداً, سيتم إنشاءه FileOutputStream هنا قمنا بإنشاء كائن نوعه
                        FileOutputStream fos = new FileOutputStream(filePath);
                        // BufferedWriter من أجل كائن الـ buffer لوضعه في الـ OutputStreamWriter هنا قمنا بإنشاء كائن نوعه
                        OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
                        // للكتابة في الملف BufferedWriter هنا قمنا بإنشاء كائن نوعه
                        BufferedWriter bw = new BufferedWriter(osw);
                        // في الملف textArea هنا قمنا بكتابة كل النص المدخل في الكائن
                        bw.write(textArea.getText());
                        // هنا قمنا بقطع الإتصال مع الملف و تنظيف الذاكرة
                        bw.flush();
                        bw.close();
    					// هنا قمنا بعرض مسار الملف الذي تم حفظه بالإضافة إلى الوقت الذي تم فيه حفظ الملف
                        label.setText(filePath + "  --  Saved Succesfully [ " + dateFormat.format(new Date()) + " ]");
                    }
                    catch (IOException ioe) {
                        // Alert في حال حدث خطأ سيتم عرضه بداخل
                        Alert alert = new Alert(AlertType.INFORMATION);
                        alert.setTitle("ERROR");
                        alert.setHeaderText("Opps.. There is a problem");
                        alert.setContentText(ioe.getMessage());
                        alert.show();
                    }
                }
            });
    
        }
    
        // هنا قمنا بتشغيل التطبيق
        public static void main(String[] args) {
            launch(args);
        }
    
    }
    		

    ستظهر لك النافذة التالية عند التشغيل.

    طريقة جعل المستخدم قادر على تحديد المكان الذي يريد أن يحفظ فيه الملف بواسطة FileChooser في javafx
    إعلان

    Eqla3Tech.com

    شروحات مكتوبة حول لغات البرمجة و تقنية المعلومات باللغة العربية مقدمة من إقلاع تك.

    لغة جافا لغة ++C قواعد البيانات نظام ويندوز نظام لينكس الشبكات تقنية المعلومات الأمن السيبراني

    الدورات

    أدوات مساعدة

    الأقسام

    دورات
    مقالات أسئلة مشاريع كتب