# بريمجات

البريمجات (بالإنجليزية: Applets)‏ هي برامج التي عادة ما تكون جزءا من موقع الويب. أما التطبيقات (Applications): هي برامج مستقلة تعمل على جهاز الكمبيوتر الخاص بك.
بالنِسبة للبريمجات عِندما يقوم مُستخدم ما بفتح موقع ويب مَع مُتصفح جافا، يَتم تَنفيذ البريمج (Applets) داخل نافذة المُتصفح، ويظهر للمستخدم أَن البريمج هو جُزء من الموقع حيث يتم تخزين البريمجات على خادم ويب مَع صفحات الويب لِلموقع، وَتنتقل البريمجات المرتبطة مع صفحة ويب وتعرض إلى نِظام المُستخدم، وعندما تنتقل البريمجات إلى نظام المستخدم يتم تنفيذها فوراً. يُمكن أيضاً استخدام البريمجات لتوسيع إمكانيات صَفحة الويب، فَعادةً ما تَكون صفحات الويب مكتوبه بلغة ترميز النص الفائق "(Hypertext Markup Language (HTML" والذي يُعتبر محتوى ثابت؛ في حين البريمجات تُعتبر ديناميكية، أما البرمجيات فَليس شرطاً أَن تعرض في صفحات الويب فَقد تُعرض لِوحدها وَقَد تُحفظ على الحاسوب المَحلي.

## قيود البرمجيات

للاحتياطات الأَمنية، هُناك أمور يجب على المُبرمج تَجنبها في البريمجات:
* الوصول إلى نظام الملفات للكمبيوتر المحلي.
* تشغيل أي برنامج اخر على نظام المستخدم.
* تنفيذ إجراءات نظام التشغيل.
* استرداد معلومات حول المستخدم أو النظام الخاص بهم.

## لغة ترميز النص الفائق (HTML)

لغة ترميز النص الفائق (HTML) هو اختِصار لِـ (Hypertext Markup Language)، حيثُ Hypertext نَص يُعرض على المتصفح الذي يحتوي على محتويات تستطيع نَقرها تُسمى ارتباطات تشعبية، فبمجرد النَقر على الروابط، يَتم عرض المُستند المُحدد. وتعتبر (HTML) بأنها اللُغة المُستخدمة في كتابة وثائق HTML أَوالصفحات التي سيتم عرضها على مستعرض الويب، وَ تتكون من مجموعة من الأوامر البسيطة التي يمكن إدراجها في ملف نصي وَبعض الأوامر تَسمح بالصور بروابط إضافيه، وَتتركز لغة (HTML) على تنسيق وَتحرير النُصوص وأَيضا تُعتبر لغة بسيطة في البرمجة، وَيجب الإشارة بأن لغة (HTML) لَيست جُزءاً من لُغة جافا (لغة برمجة).

## برمجة البريمجات

كَلمة بِريمج (بالإنجليزية:Applet) مُشتقة مِن كلمة (Application) وذلك يعني تَطبيق صَغير، والبرمجيات تعني برامج صغيرة تعمل عبر الإنترنت، وَيُمكن الإِطلاع عَلى البريمجات عَبر الإنترنت أو مِن دون أَي إِتصال بالإنترنت فَالبريمجات قَريبة جِداً من Swing GUI.

## تعريف البريمجات

تُعرف عادة فئة (Applet) كَجزء مُشتق مِن فِئة (JApplet)، ويجدر الإشارة أن فِئة (JApplet) هي في javax.swing .

## دورة حياة البريميج

هناك خَمس أَساليب تُعرف بِحاويات البريمج (applet container) مِن وقت تحميل البريمج في المتصفح لوقت إِنهائه من قبل المتصفح، وهذه الأساليب تتوافق مع جوانب مختلفة من دورة حياة البريمجات، والخمس أساليب مذكورة كَالتالي:
* Public void init
* Public void Start
* Public void paint
* Public void stop
* Public void destroy

## تصميم البريمج

فِئة البريمج (applet class) يُمكن تَصميمها عَلى حسب (class) مُشتقة مِن JApplet وَهي نفس الطريقة التي يتم بها تعريف واجهات سوينغ (swing GUI) العادِية والمُشتقة من JFrame ، وَمع ذلك، فالبريمج عادة لا يُعرف constructors .
* أُسلوب التهيئة (init method) يُنفذ التهيئة (initializations) التي سيتم تنفيذها في constructor ل Swing GUI العادية.
* المكونات (Components) يمكن أن تضاف إلى البريمج بنفس الطريقة التي يتم بها إضافة عنصر إلى JFrame.
* تُستخدم method add لإضافة عناصر إلى البريمج بنفس الطريقة التي تتم إضافة مكونات ل JFrame.

## الاختلاف بين البريمجات والواجهات الرسومية

* بَعض العناصر التي تستعمل بالواجهات الرسومية (Swing GUIs) لا تستعمل في البريمجات.
* يتم عرض البريمجات تلقائياً عن طريق صفحة ويب أوعارض بريمج.
* البَريمجات لا تَملك عناوين.
* البريمجات لا تَستعمل setSize method.
* البَريمجات لَيس لها زر إِغلاق النافذة.
* عِند إِغلاق المُستند (HTML) التي تحتوي على البريمج، يتم إغلاق البريمج.

## تشغيل البريمجات

لا يتم تَشغيل كلاس البريمج بِنفس الطَريقة التي يتم تشغيل جميع كلاسات جافا، حَيث يَتم تشغيله بمستند (HTML) وبهذا يَستطيع المُستخدم تَصفحه عن طريق صفحات الويب.

## القوائم في JApplet

* يتم إنشاء القوائم وتضاف إلى JApplet كما هي لJFrame
* JApplet لديه methodsetJMenuBar الذي يتصرف نفس طريقة setJMenuBar من JFrame .
* JApplet يمكن أن يكون أيضا أشرطة القوائم تضاف إلى JApplet أو إلى panels الذي هو جزء من JApplet باستخدام Add method .

## تحويل تطبيق سوينغ (Swing) إلى البريمج (Applet)

أَسرع وأسهل طريقة لِشرح كيفية تعريف البريمج (applet) هو شرح كيفية تعديل واجهة المُستخدم الرسومية سوينغ (Swing GUI) لتحويله إلى بريمج: 1- اشتقاق فئة (class) من فئة JApplet بدلا من فئة Jframe 2- إزالة main method . 3- استبدال المنشئ ((constractor)) مع no-parametetmethode وتسميته init ، محتوى init يمكن أن يكون هو نفسه محتوى منشئ الحذف، ولكن مع بعض العناصر المحذوفة. 4- حذف أي استدعاء من super 5-حذف أي استدعاء لزر إغلاق النافذة من نوافذ واجهة المستخدم الرسومية (GUI). 6-حذف أي استدعاء setTitle. 7-حذف استدعاء setSize .

## الرمز

كل رمز هو صورة ولكن ليس دائماً ويكون صورة صغيرة وَيمكن تخزين رمز في ملف وله العديد من الصيغ المختلفة (مثل: gif أو tiffأو JPG)، حيث أنهـ يتم استخدامImageIcon class لتحويل ملف الصورة إلى رمز سوينغ وَبعد ذلك يمكن إضافة مكون إلى أي Container class ، مثل JApplet ،ImageIconclass يكون في packagejavax.swing حيثُ:

### إضافة رموز إلى البريمجات

أَسهل طريقة لعرض رمز في البريمج هو وضعه في JLabel ، ويتم ذلك من خلال اتباع الخطوات الثلاثة التالية:
* إنشاء التسمية (label).
* إنشاء رمز.
* ثم قم بإضافة رمز إلى التسمية:

## مقارنه بين التطيبيقات (Applications) والبريمجات (Applets)

1)التشابه:
* Jframeو JApplet كلاهما فرعي منContainer class ، جميع مكونات واجهة المستخدم، ومديري التخطيط، وميزات التعامل مع الحدث هي نفسها لكلتا الفئتين.
2)الاختلاف:
* يتم استدعاء التطبيقات من الأسلوب الرئيسي (main method) من قبل مبرمج جافا، ويتم تشغيل البريمجات من قبل مستعرض ويب.
* البريمجات لديها قيود أمنية.
* متصفح الويب ينشئ بيئة رسومية للتطبيقات، وتوضع التطبيقات واجهة المستخدم الرسومية (GUI) في إطار (frame).

## مثال على البريمج (Applet)

ومن الأمثلة البسيطة على البريمجات بلغة جافا، كَما يلي:
* الصورة الأولى توضح كيفية كتابة البريمج.
* الصورة الثانية توضح شَكل نافذة البريمج عند التشغيل.

## المَراجع

* Book: Java "How to Program".
* Java.