إعلان
دورة تطوير التطبيقات باستخدام لغة 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 برنامج كاشف عناوين المواقع و الأجهزة IP Finder

    في هذا الدرس ستتعلم طريقة إنشاء برنامج ( IP Finder ) و الذي يمكن إستخدامه لجلب عنوان أي شيء متصل بالنت سواء كان سيرفر, حاسوب, هاتف إلخ..

    java swing ip finder source code تحميل كود برنامج كاشف عناوين المواقع و الأجهزة في جافا


    بناء البرنامج

    • ملفات الجافا وضعناها مباشرةً في المشروع.
    • الصور وضعناه بداخل مجلد إسمه images.


    خيارات التحميل

    ⇓ تحميل البرنامج ⇓ تحميل المشروع كاملاً ⇓ تحميل مجلد الصور فقط



    كود البرنامج

    Main.java
    import java.net.InetAddress;
    import java.net.UnknownHostException;
    import javafx.application.Application;
    import javafx.geometry.Pos;
    import javafx.scene.Group;
    import javafx.scene.Scene;
    import javafx.scene.control.Button;
    import javafx.scene.control.Label;
    import javafx.scene.control.TextField;
    import javafx.scene.image.Image;
    import javafx.scene.image.ImageView;
    import javafx.scene.layout.Pane;
    import javafx.scene.paint.Color;
    import javafx.stage.Stage;
    
    public class Main extends Application {
    
        // هنا قمنا بتعريف الأشياء التي سيتم وضعها في النافذة
        Pane backgroundPane;
        ImageView imageView;
        Label label, labelResult, labelDevelopedBy;
        TextField textField;
        Button buttonFind;
    
        @Override
        public void start(Stage stage) {
    
            // هنا قمنا بإنشاء جميع الأشياء التي سنضيفها في النافذة
            backgroundPane = new Pane();
            imageView = new ImageView(new Image(getClass().getResourceAsStream("/images/world-map.png")));
            label = new Label("Enter Domain");
            textField = new TextField();
            buttonFind = new Button("Get IP");
            labelResult = new Label("");
            labelDevelopedBy = new Label("Developed by harmash.com");
    
            // هنا قمنا بتحديد حجم كل شيء سيتم إضافته في الحاوية الرئيسية التي سنضعها في النافذة
            backgroundPane.setPrefSize(600, 340);
            imageView.setFitWidth(620);
            imageView.setFitHeight(360);
            label.setPrefSize(200, 30);
            textField.setPrefSize(200, 36);
            buttonFind.setPrefSize(200, 36);
            labelResult.setPrefSize(600, 30);
            labelDevelopedBy.setPrefSize(600, 30);
    
    		// هنا قمنا بتحديد مكان ظهور كل شيء سيتم إضافته في الحاوية الرئيسية التي سنضعها في النافذة
            label.setTranslateX(200);
            label.setTranslateY(75);
            textField.setTranslateX(200);
            textField.setTranslateY(115);
            buttonFind.setTranslateX(200);
            buttonFind.setTranslateY(165);
            labelResult.setTranslateX(0);
            labelResult.setTranslateY(225);
            labelDevelopedBy.setTranslateX(0);
            labelDevelopedBy.setTranslateY(300);
    
    		// يظهر في وسطهم labelDevelopedBy و labelResult ,textField ,label هنا قمنا بجعل نص الكائنات
            label.setAlignment(Pos.CENTER);
            textField.setAlignment(Pos.CENTER);
            labelResult.setAlignment(Pos.CENTER);
            labelDevelopedBy.setAlignment(Pos.CENTER);
    
            // ( نوع خطه, حجمه, سمكه, لونه ) label هنا قمنا يتعديل تصميم الكائن
            label.setStyle(
                    "-fx-font-family: Arial;"
                    + "-fx-font-size: 20px;"
                    + "-fx-text-fill: white;"
                    + "-fx-font-weight: bold;"
            );
    
            // ( نوع خطه, حجمه, سمكه, لونه, مع تحديد لون و سمك حدوده و لون خلفيته ) textField هنا قمنا يتعديل تصميم الكائن
            textField.setStyle(
                    "-fx-font-family: Arial;"
                    + "-fx-font-size: 16px;"
                    + "-fx-text-fill: lightgrey;"
                    + "-fx-border-color: gray;"
                    + "-fx-border-style: solid;"
                    + "-fx-border-width: 2px;"
                    + "-fx-background-color: black;"
            );
    
            // ( نوع خطه, حجمه, سمكه, لونه, مع تحديد لون و سمك حدوده و لون خلفيته ) buttonFind هنا قمنا يتعديل تصميم الكائن
            buttonFind.setStyle(
                    "-fx-font-family: Arial;"
                    + "-fx-font-size: 16px;"
                    + "-fx-text-fill: lightgrey;"
                    + "-fx-border-color: gray;"
                    + "-fx-border-style: solid;"
                    + "-fx-border-width: 2px;"
                    + "-fx-background-color: #333;"
                    + "-fx-cursor: hand;"
            );
    
            // ( نوع خطه, حجمه, سمكه ) labelResult هنا قمنا يتعديل تصميم الكائن
            labelResult.setStyle(
                    "-fx-font-family: Arial;"
                    + "-fx-font-size: 18px;"
                    + "-fx-font-weight: bold;"
            );
    
            // ( نوع خطه, حجمه, سمكه, لونه ) labelDevelopedBy هنا قمنا يتعديل تصميم الكائن
            labelDevelopedBy.setStyle(
                    "-fx-font-family: Arial;"
                    + "-fx-font-size: 16px;"
                    + "-fx-text-fill: Blue;"
                    + "-fx-font-weight: bold;"
            );
            
            // buttonFind هنا قمنا بتحديد ما سيحدث عند النقر على الكائن
            buttonFind.setOnAction((ActionEvent) -> {
                // url سيتم تخزين النص الموجود في مربع النص في الكائن
                String url = textField.getText();
    
                // labelResult إذا لم يكن مربع النص فارغاً سيحاول البرنامج الإتصال بالنت و جلب عنوان الموقع المذكور و وضعه كنص للكائن
                if (!url.isEmpty()) {
                    try {
                        InetAddress address = InetAddress.getByName(url);
                        String ip = address.getHostAddress();
                        labelResult.setText(ip);
                        labelResult.setTextFill(Color.GREEN);
                    }
    				catch (UnknownHostException ex) {
                        labelResult.setText("Invalid URL or Network is Down");
                        labelResult.setTextFill(Color.RED);
                    }
                }
    			// إذا كان مربع النص فارغاً عند النقر على الزر, سيتم إظهار النص التالي و تلوينه بالأحمر
                else {
                    labelResult.setText("Please enter a valid URL in the above field");
                    labelResult.setTextFill(Color.RED);
                }
            });
    
            // في النافذة Root Node و الذي ننوي جعله الـ Group هنا قمنا بإنشاء كائن من الكلاس
            Group root = new Group();
    
            // هنا قمنا بإضافة جميع الأشياء التي قمنا بإنشائها في النافذة
            root.getChildren().add(backgroundPane);
            root.getChildren().add(imageView);
            root.getChildren().add(label);
            root.getChildren().add(textField);
            root.getChildren().add(buttonFind);
            root.getChildren().add(labelResult);
            root.getChildren().add(labelDevelopedBy);
    
            // فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن
            Scene scene = new Scene(root, 600, 340);
            // هنا وضعنا عنوان للنافذة
            stage.setTitle("Ip Finder");
            // أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ
            stage.setScene(scene);
            // هنا قمنا بإظهار النافذة
            stage.show();
    		// هنا جعلنا المستخدم غير قادر على تكبير أو تصغير حجم النافذة بنفسه
            stage.setResizable(false);
    
        }
    
        // هنا قمنا بتشغيل التطبيق
        public static void main(String[] args) {
            launch(args);
        }
    
    }
    		
    إعلان

    Eqla3Tech.com

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

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

    الدورات

    أدوات مساعدة

    الأقسام

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