0% found this document useful (0 votes)
27 views204 pages

Java اساسيات برمجة2024

Uploaded by

doodyanaa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
27 views204 pages

Java اساسيات برمجة2024

Uploaded by

doodyanaa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 204

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬

‫صفحة ‪- 1 -‬‬ ‫‪[email protected]‬‬


‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 2 -‬‬ ‫‪[email protected]‬‬
‫المحـتويــــــــــــــــــات‬

‫الوحدة األولى‪- 7 -‬‬


‫مقدمــــــــــــــــــــــــــــــــــــــــه‪- 7 -‬‬
‫أنظمــة التشغيل ‪- 7 - ............................................... Operating Systems‬‬
‫برمجيات التطبيقات ‪- 8 - ....................................... Application Software‬‬
‫لغات البرمجة ‪- 8 - ........................................ Programming Languages‬‬
‫لغات اآللة ‪- 9 - ..................................................... Machine languages‬‬
‫لغات التجميع ‪- 9 - ................................................ Assembly languages‬‬
‫لغات المستوى العالي ‪- 9 - ...................................... High level languages‬‬
‫مقدمه في الجـــــــــــافا و ما هي الجـــــــــــافا ‪- 10 - ...........................................‬‬
‫برامج التطبيقات (‪- 10 - ..................................... )Application Programs‬‬
‫برامج صغيــره (‪- 11 - .............................................. )Applet Programs‬‬
‫مترجـــــــــــم الجـــــــــافــا ‪ /‬بيئة التطوير المتكاملــــــة ‪- 13 - ................................‬‬
‫ماكينـــــة الجـــــــــافــا االفتراضيــــــة (‪- 14 - ......................................... ) JVM‬‬
‫و حـُـــــــزمة تطويـــــــــــر البرامــــــــــج ( ‪- 14 - ..................................... ) JDK‬‬
‫و بيئــــــــــــة تشغيــــــل برامج الجــــــافا ( ‪- 14 - ..................................... ) JRE‬‬
‫مميزات لغة الجافا ‪- 16 - ...........................................................................‬‬
‫الفئة ‪- 17 - ................................................................................ Class‬‬
‫الطرق ‪- 17 - ....................................................................... Methods‬‬
‫اطار العمل ‪- 17 - ...................................................................... Frame‬‬
‫االدوات ‪- 17 - ......................................................................... Palette‬‬
‫الخصائص ‪- 17 - ............................................................... Properties‬‬
‫الحدث ‪- 18 - ........................................................................... Event‬‬
‫االجراء ‪- 18 - ................................................................... Procedure‬‬
‫الوحدة الثانية‪- 19 -‬‬
‫التعرف على مكونات النت بينز ‪ -‬جافا‪- 19 -‬‬
‫مراحل البرمجة بالجافا ‪- 19 - ......................................................................‬‬
‫انشاء واجهة ‪- 19 - ................................................................................‬‬
‫اضافة نموذج جديد للتطبيق (‪- 25 )Adding a New Form to the Application‬‬
‫‪-‬‬
‫تصميم نموذج وإضافة أدوات تحكم ‪- 29 - .......................................................‬‬
‫إنشاء واجهة تطبيق ( نموذج وبرمجته ) ‪- 31 - ................................................‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 3 -‬‬ ‫‪[email protected]‬‬
‫إنشاء الواجهة ‪- 31 - ..............................................................................‬‬
‫ضبط الخصائص ‪- 33 - ..........................................................................‬‬
‫هنالك فرق بين دالة ‪ SET‬و ‪GET- 39 -‬‬
‫الوحـــــــــدة الثالثه‪- 41 -‬‬
‫تعريف المتغيرات‪- 41 -‬‬
‫تعريف المتغيرات وكيفية استخدامها ‪- 41 - ......................................................‬‬
‫تحديد ( تخصيص ) قيمه لمتغير ‪Error! Bookmark not defined. ................‬‬
‫دمج الحروف وسالسل الحروف ‪- 49 - ...................................................... /‬‬
‫التعامــل مع صناديــق الحـــوار ( االستعانة بمكتبـة فئات الجافــا ) ‪- 49 - ............. /‬‬
‫تمرين‪ /‬انشاء الواجهة ‪- 50 - .....................................................................‬‬
‫تغيير الخصائص ‪- 51 - ..........................................................................‬‬
‫كتابـة الكــــود ‪- 53 - ..............................................................................‬‬
‫العمليـــــات الحســـــابية وطريقــــة التحويــــل من نص الى رقــــم ‪- 57 - ...................‬‬
‫الوحدة الرابعه‪- 62 -‬‬
‫اجراء العمليات الحسابية وكتابة برامج‪- 62 -‬‬
‫األساليب الحســــــــــابية ‪- 62 - ...................................................................‬‬
‫أسبقية تنفيذ العمليات الحسابيه ‪- 67 - ............................................................‬‬
‫الوحـــــــــــــــدة الخامسه‪- 69 -‬‬
‫جمــــــل التحــــــــكم‪- 69 -‬‬
‫أوال ‪ :‬جملـة اختيـــار الحالـــة‪- 69 - ..............................................................‬‬
‫‪- 69 - ........................................................................... switch … case‬‬
‫مالحظه ‪ /‬كلمة ‪ break‬تعني توقف عمل البرنامج داخل اطار ودائرة عمل هذه‬
‫الصيغه ( ‪- 70 - ......................................................... )switch … case‬‬
‫المحاضره الثانيه ‪- 81 - ..........................................................................‬‬
‫جملة الشرط ( ‪- 81 - ...................................................................... ) if‬‬
‫شكل جملة ( ‪- 82 - ................................................................. ) if …else‬‬
‫شكل جملة ( ‪ ) if …else‬الشرطيه المركبه ‪- 82 - ...........................................‬‬
‫استعمال العوامل المنطقية في جملة ( … ‪- 83 - .......................................... )if‬‬
‫الربــــــــــــط بيـــن شــاشــــــات المشــــــــــروع ‪- 84 - ...................................‬‬
‫تحديـــــــد نمـــــوذج بدايــــة تنفيـــــذ المشــــــروع ‪- 91 - .................................‬‬
‫انشاء الملف التنفيذي (الجار ‪- 93 - ..................................................... ) jar‬‬
‫الوحــــــــــــــــدة السادسه‪- 96 -‬‬
‫التكــــــــــــــــــــــــــــــرار‪- 96 -‬‬
‫استخـــــــــدام جــملـــــــــــة ‪- 96 - ......................................................... for‬‬
‫الشكل البنائي لجملة ‪- 96 - .................................................................. for‬‬
‫التكـــــــــــرار باستخـــــــــدام ‪- 100 -.............................. Do while and while‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 4 -‬‬ ‫‪[email protected]‬‬
‫الصفــــائف (المصفوفـــات) ‪- 106 -...............................................................‬‬
‫‪- 107 -..................................................................................... Arrays‬‬
‫مصفوفات البعــــد الواحــــــــــــد ‪- 107 -.........................................................‬‬
‫‪- 107 -......................................................... One-Dimensional Arrays‬‬
‫مصفوفات متعــــددة األبعــــــــــــاد ‪- 111 -.......................................................‬‬
‫‪- 111 -....................................................... Multi-Dimensional Arrays‬‬
‫الوحــــــــــــــدة السابعه‬
‫‪- 114 -‬‬
‫بناء التطـبـيــــــــــــــقات‬
‫‪- 114 -‬‬
‫أسلوب التعامل مع ملفات الصور‬
‫‪- 114 -.........................................................‬‬
‫من خالل البرمجة الموجـهـة الشيئية ‪- 114 -.....................................................‬‬
‫‪- 114 -................................................ Object Oriented Programming‬‬
‫إنشاء ارتباط باالنترنت أو البرامج‬
‫‪- 118 -.......................................................‬‬
‫الوحدة الثامنه‪- 120 -‬‬
‫العمل مع مجموعه البيانات‪- 120 -‬‬
‫العمل مع مجموعه البيانات ‪- 120 -................................................................‬‬
‫أوال ‪ :‬كتابة أمر مانع حدوث األخطاء واكتشافها (‪- 120 - ............... )try … catch‬‬
‫ثانيا ‪ :‬تحميل محرك الـ ‪ JDBC‬المناسب ‪- 121 - .............................................‬‬
‫ثالثا ‪ :‬قناة االتصال وهي الربط مع قاعدة البيانات ‪- 122 - ..................................‬‬
‫رابعا‪ :‬تحديد أمر االستعالم ‪- 126 - ............................................................‬‬
‫خامسا‪ :‬تنفيذ أمر االستعالم ‪- 127 - ............................................................‬‬
‫سادسا‪ :‬جلب وعرض البيانات والمعلومات ‪- 127 - ..........................................‬‬
‫سابعا‪ :‬مسح واغالق (مجمع النتائج ‪ ) rs‬و (أمر االستعالم ‪ ) st‬و (قناة االتصال‬
‫‪- 127 - ................................................................................. )conn‬‬
‫إنشاء أدوات التنقل بين السجالت ‪- 135 -.........................................................‬‬
‫تحديد موقع السجل الحالي عن طريق بناء طريقه جديده (‪- 143 - .......... )Method‬‬
‫تعديل واضافة وحذف سجالت والبحث عنها ‪- 147 - ........................................‬‬
‫تعديل السجل الحالي ‪- 148 - .....................................................................‬‬
‫اضافة سجل جديد ‪- 149 - .......................................................................‬‬
‫حذف السجل الحالي ‪- 150 - .....................................................................‬‬
‫البحث عن سجل أو أكثر ‪- 151 - ...............................................................‬‬
‫اظهار صوره مرافقه للسجالت (توافق موقع السجل الحالي) ‪- 154 - .....................‬‬
‫الوحـــــــــــــــــدة التاسعه‪- 162 -‬‬
‫التقاريـــــــــــــــــــــــــــــر‪- 162 -‬‬
‫أهمية التقارير ومولد التقارير ‪- 162 - ..........................................................‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 5 -‬‬ ‫‪[email protected]‬‬
‫انشـــــــــــاء تقاريــــــــــر ‪- 168 - .............................................................‬‬
‫ربط التقارير واستدعائها من خالل البرنامج ‪- 187 - ........................................‬‬
‫أوال ‪ /‬انزال حزمتي المكتبات ‪- 188 - .........................................................‬‬
‫ثانيا ‪ /‬انشاء العنصر الذي سيتم من خالله االستدعاء (زر ‪- 194 - .......... )Button‬‬
‫ثالثا ‪ /‬تحديد نوع الحدث (نوع التأثير على هذا العنصر) ‪- 195 - .........................‬‬
‫رابعا ‪ /‬كتابة الكود داخل محتوى الحدث لهذا العنصر ‪- 196 - ............................‬‬
‫طباعة تقارير اعتمادا على استعالمات محدده ‪- 201 -...........................................‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 6 -‬‬ ‫‪[email protected]‬‬
‫الوحدة األولى‬
‫مقدمــــــــــــــــــــــــــــــــــــــــه‬
‫مااا هااو برنااامج الحاسااب ؟ برنااامج الحاسااب هااو عبااارة عاان مجموعااه ماان‬
‫التعليمات تعطى للحاساب للقياام بعمال ماا مثال حسااع مجماوع قايم مختلفاة‬
‫حساع المتوسط الحسابي حساع مضروع عدد معين ‪...‬الخ‬
‫مااع العلاام أن البرنااامج هااو الااذي يحاادد للحاسااب كيفيااة التعاماال مااع البيان اات‬
‫للحصااااول علااااى النتااااائج المطلوبااااة ‪ .‬والبرنااااامج يكتااااب بواسااااطة المباااارمج‬
‫(‪ )Computer Programmer‬الااذي يفهاام المشااكلة ويقتاارا الحاال وينفااذه‬
‫لحل هذه المشكلة ويجب أن يكون البرنامج في مجموعه صحيحا ً وواضاحا ً‬
‫وليس فيه لبس أو غموض ‪.‬‬
‫وكما هو معلوم بان مكونات الحاسب األساسيه تنقسم الى قسمين رئيسيه هاي‬
‫البرمجياات (‪ )Softwares‬والعتااد (‪ )Hardwares‬فالبرمجيااات هاي التااي‬
‫تسااهل للمسااتخدم اسااتخدام المكونااات الماديااة بكفاااءة وراحااة وبااذلي يمكاان‬
‫تقسيم البرمجيات إلى ثالثة أنواع رئيسيه وهي ‪-:‬‬

‫أنظمــة التشغيل ‪Operating Systems‬‬


‫مثال ‪ Dos‬قاديما (‪ )Under windows now‬و نوافـــــــاـذ (‪)Windows‬‬
‫و ‪ Linux‬و ‪ Mac‬و ‪ Android‬و ‪ iOS‬وغيرها الكثيار ‪ .‬مفردهاا نظاام‬
‫وهااو يقااوم باادور الوساايط بااين المسااتخدم والمكونااات الماديااة كااي يسااتطيع‬
‫المستخدم التحكم وتوجيه المكونات المادية بكفاءة وراحة ‪.‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 7 -‬‬ ‫‪[email protected]‬‬
‫برمجيات التطبيقات ‪Application Software‬‬
‫مثااااال مايكروساااااوف أوفااااايس (‪ Excel‬و ‪ ... Access‬الاااااخ) فوتوشاااااوع‬
‫‪ Photoshop‬وغيرهاااا الكثيااار ب هاااي عباااارة عااان برمجياااات تااام تصاااميمها‬
‫لتساعد في إنشاء كثير مان التطبيقاات والمهاام المحاددة كءنشااء قاعادة بياناات‬
‫أو رسم بياني باستخدام الحاسب‬
‫لغات البرمجة ‪Programming Languages‬‬
‫وهي لغات صناعية تام تصاميمها لتوصايل تعليماات إلاى اآلالت وبخاصاة‬
‫الحاسب‪ .‬يمكن أن تستخدم إلنشاء برنامج يتحكم فاي سالوك وتصارف آلاه ماا‬
‫أو‪ /‬و القيام بعمليه منطقياه علاى وجاه الخصاو ‪ .‬ويوجاد العدياد مان لغاات‬
‫البرمجااة المسااتخدمة اليااوم وهااذه اللغااات يمكاان تقساايمها إلااى ثااالث أنااواع‬
‫رئيسيه هي ‪:‬‬
‫لغات اآللة ‪Machine languages‬‬ ‫‪.A‬‬
‫لغات التجميع ‪Assembly languages‬‬ ‫‪.B‬‬
‫لغات المستوى العالي ‪High level languages‬‬ ‫‪.C‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 8 -‬‬ ‫‪[email protected]‬‬
‫لغات اآللة ‪Machine languages‬‬
‫هي اللغة الوحيدة التي يفهمها الحاسب ويستطيع التعامال معهاا ‪ .‬وهاي تعتماد‬
‫علااى المكونااات الماديااة للحاسااب نفسااه ولغااة الحاسااب تتركااب ماان مجموعااة‬
‫أرقام مان باين ‪ 0‬و ‪ 1‬التاي تعطاي تعليماات للحاساب للقياام بمعظام العملياات‬
‫األساسااية واحااده بعااد أخاارى ‪ .‬وللعلاام بااأن لغااة اآللااة ماان اللغااات الصااعبة فاي‬
‫التعلم لإلنسان حتى بالنسبة للمبرمجين ألنها عبارة عن مجموعه من األرقاام‬
‫(‪ 0‬و ‪ )1‬فقط‪ .‬وللتغلب على هذه الصعوبة تم اقتاراا لغاة أخارى تعتماد علاى‬
‫اسااتخدام اختصاااارات معبااارة مااان اللغااة االنجليزياااة للتعبيااار عااان العملياااات‬
‫األولية التي يقوم بها الحاسب وهذه اللغة هي لغة التجميع‪.‬‬

‫لغات التجميع ‪Assembly languages‬‬


‫هااي لغااة تسااتخدم اختصااارات معباارة ماان اللغااة اإلنجليزيااة لتعباار بهااا عاان‬
‫العملياات األولياة التاي يقاوم بهاا الحاسااب مثال إضاافة ‪ Add‬وحفا ‪Store‬‬
‫وطرا ‪Sub‬‬
‫‪Add A‬‬ ‫‪Store S‬‬ ‫مثال ‪Sub B :‬‬
‫وألن هاذه اللغااة تساتخدم كلمااات مختصاره ماان اللغاة اإلنجليزيااة فأنهاا تحتاااج‬
‫محااوال لكااي يحولهااا إلااى لغااة اآللااة وهااو مااا يساامى المجمااع ‪Assembler‬‬
‫الذي يقوم بتحويل لغة التجميع إلى لغاة اآللاة كاي يفهمهاا الحاساب ويساتطيع‬
‫تنفيااذها وبااالرغم ماان ذلااي إلااى أنااه مااا زال ا توجااد مشااقه عنااد حاال أبسااط‬
‫المسائل ألن ذلاي يتطلاب معرفاة وكتاباة العدياد مان التعليماات‪ .‬وهاذا ماا دفاع‬
‫المبرمجين للتفكير في لغات أخرى تقلل المجهود الكبير الالزم لكتابة الكثير‬
‫من التعليمات فكان لغات البرمجة ذات المستوى العالي ‪.‬‬

‫لغات المستوى العالي ‪High level languages‬‬


‫وهااذه ال لغااات تعتباار سااهله ومرغوبااة ماان وجهااة نظاار المباارمجين بالمقارنااة‬
‫بلغاتاااالتجميع ولغاااة اآللاااة وذلاااي لساااهوله كتابتهاااا وفهمهاااا وحااال المشااااكل‬
‫باستخدامها ومان أمثلاه هاذه اللغاات لغاة ‪ C++ C‬الباساكال ‪Pascal‬‬
‫الفااااورتران ‪ Fortran‬البيسااااي ‪ Basic‬اآلدا ‪ ADA‬جافااااا ‪JAVA‬‬
‫وغيرها‪.‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 9 -‬‬ ‫‪[email protected]‬‬
‫ومن المعلوم أن عمليه تحويل البرنامج من لغة ذات مستوى عالي إلى لغة‬
‫اآللة تستهلي وقتا ولذلي تم تطوير نسخ من لغات المستوى العالي بحيث‬
‫تسااتخدم برنااامج مفساار ‪ Interpreter‬والااذي يقااوم بترجمااة الكااود سااطرا ً‬
‫سطرا ً أثناء تنفيذ البرنامج ‪.‬‬
‫وهذه اللغات كتب بحيث تستخدم بعض الكلمات االنجليزية العادية بنفس‬
‫معانيها حيث يقوم كل أمر منها بتنفيذ العديد من الواجبات وهذه اللغات‬
‫كسابقاتها تحتاج إلى مترجمات ‪ Compilers‬التي تقوم بتحويل التعليمات‬
‫(األوامااار) إلاااى لغاااة اآللاااة وهاااذه اللغاااات تساااتخدم العالقاااات والعوامااال‬
‫الرياضية المتعارف عليها مثال ذلي‬
‫‪Sum =A + B + C‬‬

‫مقدمه في الجـــــــــــافا و ما هي الجـــــــــــافا‬

‫هذه الوحدة تبحث في أبجديات مكونات لغة الجافا (‪ )Java‬والتاي تتكاون مان‬
‫المتغيااارات (‪ )Variables‬والثوابااا (‪ )Constants‬والكلماااات المحجاااوزة‬
‫(‪ )Reserved Words‬وغيرهااا والتااي سااوف نعرضااها فااي هاذه الوحاادة ‪.‬‬
‫كااااذلي سااااوف نتعاااارض بالشـااااـرا أيضااااا ً لجميـااااـع العمليااااات الحسابيـــااااـة‬
‫(‪ )Arithmetic Operations‬والمنطقيااة (‪ )Logic‬وعمليااات اإلسااناد‬
‫(‪ )Assignments‬والعمليااات العالئقي اه (‪)Relational Operation‬‬
‫والنصية (‪ )String‬وغيرها من العمليات ‪.‬‬

‫وقبل الحديث عن مكونات لغة الجافا يجب أن نعلم أن البرامج المكتوباة بلغاة‬
‫الجافا تنقسم إلى نوعين ‪-:‬‬
‫برامج التطبيقات (‪)Application Programs‬‬
‫وهي برامج مكتوبة بلغة الجافا ويمكان تنفياذها مباشاره مان خاالل بيئاة‬
‫الجافا باستخدام مفسر الجافا (‪.)Java Interpreter‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 10 -‬‬ ‫‪[email protected]‬‬
‫برامج صغيــره (‪)Applet Programs‬‬
‫هي عبارة برامج تطبيقيه تستخدم متصفح العميل لتقدم واجهة مستخدم حيث‬
‫يااتم تنفيـــااـذها ماان خــــااـالل متصفحـــااـات اإلنترنا مثــــااـل ‪Internet :‬‬
‫‪ Explorer‬أو ‪ Netscape Navigator‬أو ‪ Mozilla Firefox‬أو‬
‫غيرها من متصافحات اإلنترنا وبالتاالي يمكان تنفياذ هاذه البارامج علاى أي‬
‫حاسااب وم اع أي متصاافح لإلنترن ا وهااذا مااا يخكااد خاصااية الحماال (النقاال)‬
‫لبااارامج الجافاااا أي بمعناااى إمكانياااة تنفياااذها علاااى حاساااب يااادعم متصااافحات‬
‫اإلنترن ‪.‬‬
‫الجافا عبارة عن لغة برمجه تم تطويرها أساسا بواسطة جيمس‬
‫قوزلين (‪ )James Gosling‬لدى شركة صن ميكروسيستم ( ‪Sun‬‬
‫‪( )Microsystems‬والتي دمج مع شركة أوراكل ‪ Oracle‬بين‬
‫عامي ‪2010 -2009‬م ) ‪.‬‬
‫تم الشروع في مشروع الجافا في شهر جون ‪1991‬م‪ .‬صمم أساسا‬
‫للتلفزيون التفاعلي لكنها كان متقدمه جدا في ذلي الوق حيث‬
‫استخدم في الكيابل التلفزيونية الرقمية‪ .‬وحررت في عام ‪1995‬م‬
‫كأساس وجوهر مكونات لمنصة الجافا الخاصة بالشركة األم‪.‬‬
‫اللغة في البداية سمي اًووك (‪ )Oak‬وتعني شجر البلوط ثم تغيرت‬
‫إلى قرين (‪ )Green‬ومخخرا أعيد تسميتها جافا (‪ )Java‬ويعود‬
‫االسم إلى قهوة الجافا(‪ )Java Coffee‬المشهورة في جزيرة جافا‬
‫(جاوا)(‪ )Jawa‬االندونيسية قيل لكي تستهلي بكميات كبيره من قبل‬
‫مبدعي اللغات‪.‬‬

‫اشتق واستمدت لغة الجافا الكثير من تراكيب الجمل الخاصة بها من‬
‫خالل لغة السي ( ‪ ) C‬والسي بلص بلص (‪ .)C++‬تطبيقات الجافا‬
‫تترجم إلى الباي كود ‪ )class file( bytecode‬والذي بدوره يمكن‬
‫أن يعمل على أي آلة جافا افتراضية ( ‪ ) JVM‬بغض النظر عن‬
‫الهندسة المعمارية للكمبيوترات حيث يتم حمل هذه اآلله االفتراضية‬
‫مع كل برنامج مصمم بالجافا ليتم التعامل مع اآلله بحيث تكون وسيط‬
‫بين البرنامج المصمم بالجافا والمنصة بغض النظر عن نوع نظام‬
‫التشغيل الموجود على هذه المنصة وتسمى ‪platform‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 11 -‬‬ ‫‪[email protected]‬‬
‫‪ independent‬في هندسة البرمجيات وتعني ان يقدر على العمل‬
‫فوق معالجات مختلفة ( بمفهومنا تسمى انظمة تشغيل مختلفة )‪.‬‬

‫القصد من لغة الجافا السماا لمطوري التطبيقات (الكتابة مرة واحدة‬


‫ثم التنفيذ في أي مكان) و تعني أن البرنامج الذي يعمل على منصة‬
‫ما ال يلزم إعادة الترجمة مره أخرى ليعمل على آخر‪ .‬كما يجب‬
‫العلم أن لغة الجافا تعتبر واحده من أكثر لغات البرمجة شهرة‬
‫استخداما‪.‬‬
‫برامج الجافا تعمل على األجهزة المحمولة ‪ Laptops‬حتى مركز‬
‫البيانات ‪ Data centre‬في األلعاع الرقمية بجميع أنواعها والعاع‬
‫الفيديو وللعلم هنالي ما يقارع ‪ 930‬مليون عمليه تنزيل كل عام و ‪3‬‬
‫مليار هواتف نقاله تستخدم الجافا‪.‬‬
‫‪https://www.java.com/en/about/‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 12 -‬‬ ‫‪[email protected]‬‬
‫مترجـــــــــــم الجـــــــــافــا ‪ /‬بيئة التطوير المتكاملــــــة‬
‫‪Java Compiler / IDE‬‬
‫المبرمجاااون هااام الاااذين يكتباااون البااارامج فاااي شاااكل يااادعى شااافرة المصااادر‬
‫(‪ .)Source code‬وشفرة المصدر تحتوي على تعليمات تكتب بلغاه خاصاة‬
‫ذات مستوى عالي مثل ‪ Ada Fortran Java C‬وغيرها الكثير‪ .‬لكان‬
‫أجهزة الكمبيوتر تنفذ التعليمات التي تكتب بلغه ذات مستوى مانخفض تادعى‬
‫لغة اآللة (‪. )Machine Language‬‬

‫للوصـااـول ماان شــااـفرة المصاادر (‪ )Source Code‬إلااى لغــااـة اآللــــااـة‬


‫(‪ )Machine Language‬يجااب أن يحااول البرنااامج بواسااطة مااا يساامى‬
‫مترجم ( ‪.) Compiler‬‬

‫المترجم (‪ )The compiler‬يقاوم بءنتااج شاكل وسايط يادعى الشافرة الهادف‬


‫(‪ )Object Code‬أو شفرة البايـ (‪.)bytecode‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 13 -‬‬ ‫‪[email protected]‬‬
‫الشااافرة الهااادف (‪ )Object Code‬مشاااابهه والاااى حاااد بعياااد للغاااة اآللاااة‬
‫(‪ .)Machine Language‬وبااذلي تكااون الخطااوة األخياارة إلنتاااج برنااامج‬
‫تنفيذي هو تحويل الشفرة الهدف إلى لغة آلاه إن لام تصابح أساساا علاى هاذا‬
‫الشكل‪ .‬يمكن عمل ذلي من خالل عدد من األنواع المختلف من البرامج مثال‬
‫‪( Assembler‬والذي يقوم بترجماة البارامج مان لغاة تجمياع إلاى لغاة آلاه )‬
‫‪( Linker‬والااااذي يقااااوم بااااربط الوحاااادات ذات القيمااااة الشاااايئية ‪object‬‬
‫‪ modules‬لتكوين برنامج تنفيذي)‬
‫شااافرة البايااا (‪ )bytecode‬هاااي مرحلاااه وشاااكل ماااا بعاااد ترجمـاااـة خاصاااة‬
‫برامـااـج الجافااا‪ .‬وبااذلي تكااون الخطااوة األخياارة إلنتاااج برنااامج تنفيااذي ه او‬
‫تحويال الشافرة الهادف إلاى لغااة آلاه ويمكان تنفياذ ذلااي مان خاالل ماا يساامى‬
‫‪ )Java Virtual Machine( JVM‬الموجاود مان ضامن منصاة ‪JDK‬‬
‫)‪)Java Development Kit‬‬

‫ماكينـــــة الجـــــــــافــا االفتراضيــــــة (‪) JVM‬‬


‫و حـُـــــــزمة تطويـــــــــــر البرامــــــــــج ( ‪) JDK‬‬
‫و بيئــــــــــــة تشغيــــــل برامج الجــــــافا ( ‪) JRE‬‬
‫الـاـ ‪ )Java Virtual Machine( JVM‬عباارة عان جازء مان مجموعااة‬
‫حازم ‪ )Java Development Kit( JDK‬ياتم تنزيلهاا مان موقاع الشاركة‬
‫األم (بيئة تشغيل مستقلة تتصرف كما لو أنها كمبياوتر مساتقل) تعمال كبيئاة‬
‫تنفيااذ منصااة مسااتقلة كجاازء ماان حيااث تقااوم بتفسااير الجافااا باي ا كـــااـود‬
‫‪ ) .class( bytecode‬المترجـااااـم ماااان ( ‪ ) .java‬الااااذي تاااام كتابتـــــااااـه‬
‫(باااالمفكرة ‪ Notepad‬ماااثال أو ‪ WordPad‬أو غيرهماااا ) إلاااى لغاااة اآللاااة‬
‫(‪ )Machine Language‬ومن ثم تنفيــــذ البرنامج ‪.‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 14 -‬‬ ‫‪[email protected]‬‬
‫وببلوغ هاذه المرحلاة تصابح شافرة المصادر (‪ )Source Code‬قابلاة للعمال‬
‫على أي منصة (أي نظام تشغيل) لكان لان يعمال علاى هاذه المنصاة األخارى‬
‫إال بجااود الـااـ‪ JVM‬أيضااا علااى هااذه المنصااة األخاارى‪ .‬والااذي يتواجااد أيضااا‬
‫ضامن منصاة ‪ )Java Runtime Environment( JRE‬والتاي تعتباار‬
‫وسيط يمكن من خاللها فقاط تنفياذ وعمال برناامج الجافاا (وفاي هاذه المرحلاة‬
‫تحديدا يمكن إرسال هذا الملف ذو االمتاداد ‪ .class‬عبار الشابكة أو إلاى أي‬
‫جهاز أخر وسيعمل تلقائيا بدون أخطاء وبذلي يصبح العمل مضامونا وخاالي‬
‫من العيوع)‪.‬‬

‫وللعلم ان أي مشروع بالجافا يتكون من حزمــة واحده أو أكثار وكال حزمـاـة‬


‫تحتوي على فئــة (كاالس) واحاده أو أكثار وكال فئـاـة تحتاوي علاى عنصار واحاد او‬
‫أكثر وباذلي يكاون لكال كاائن ( ‪ ) Object‬حادث واحاد او أكثار ( ‪ ) Events‬و لكال‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 15 -‬‬ ‫‪[email protected]‬‬
‫حاادث أجااراء واحاااد أو أكثاار ( ‪ ) Procedures‬ويمكااان التعبياار عااان هااذا المفهاااوم‬
‫بالعالقات التالية‬
‫مشــروع ‪: Project‬‬ ‫‪‬‬
‫حـــزم ‪: Packages‬‬ ‫‪‬‬
‫فئـــات ‪: Classes‬‬ ‫‪‬‬
‫كائنــات ‪: Objects‬‬ ‫‪‬‬
‫أحداث ‪:Events‬‬ ‫‪‬‬
‫إجراءات ‪.Procedures‬‬ ‫‪‬‬

‫فالكائنات أو العناصر في الجافا تسمى أدوات تحكم ‪ Controls‬أو نمااذج ولساوف‬


‫تااارى أن لبرمجاااه اللغاااة عناصااار أولياااه هاااي اطاااار العمااال ‪ Frame‬وأدوات تحكااام‬
‫‪ Palette Tools‬وموارد للتطبيقات ‪. Resources‬‬

‫مميزات لغة الجافا‬


‫تعتبر لغة الجافا إحدى لغات البرمجة المشهورة في بيئة الحاسب التي أنشأتها شاركة‬
‫سن مايكرو سيستمز لتبسيط البرامج (والتي استحوذت عليها شركة اوراكال الحقاا)‬
‫وأتاح معها مكتبة من البرامج أهمها ‪:‬‬
‫برامج تستعمل واجهة رسوميه متطورة ‪.‬‬
‫برامج تستعمل االنترن ‪.‬‬
‫حيث يتم استخدام هذه البرامج بحياث تكاون بارامج موزعاه علاى أكثار مان حاساب‬
‫باالضافة الى امكانية استخدام هذه البرامج لقواعد البيانات بشكل متطور‪.‬‬

‫تتميز منصة الن بينز بتوفير مجموعة من النمااذج الجااهزة ( األنمااط أو القوالاب )‬
‫وتتم عمليه تركيبها في نموذج التطبيق ( البرنامج ) فهاي تمادنا بمجموعاة مان هاذه‬
‫النماذج أو القوالب االساسيه منها ‪:‬‬
‫‪Classes‬‬ ‫‪ -1‬االصناف ‪ /‬الفئات‬
‫‪Methods‬‬ ‫‪ -2‬الوظائف ‪ /‬الطرق‬
‫‪Frame‬‬ ‫‪ -3‬اطار العمل‬
‫‪Palette‬‬ ‫‪ -4‬االدوات‬
‫‪Properties‬‬ ‫‪ -5‬الخصائص‬
‫‪Event‬‬ ‫‪ -6‬الحدث‬
‫‪Procedure‬‬ ‫‪ -7‬االجراء‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 16 -‬‬ ‫‪[email protected]‬‬
‫الفئة ‪Class‬‬
‫بناء يحوي بداخله تعريفا بالبيانات واإلجراءات والوظائف و الطرق التاي تعمال فاي‬
‫هذه الفئة ‪.‬‬

‫الطرق ‪Methods‬‬
‫باقة من االساتعالمات مجموعاه ماع بعضاها الابعض لتشاكيل عملياات محاددة تنادرج‬
‫تح اسم فريد ‪.‬‬
‫يوجد نوعين اساسيين من الطرق ‪:‬‬
‫‪ -1‬طرق ال تعود بقيمه وتسمى طريقه بدون ارجاع تسبق بكلمة بــ‪. void‬‬
‫‪ -2‬طرق تعود بقيمه وتسامى طريقاة بارجـــــاـاع وتسابق بكلماة تحمال نفاس ناوع‬
‫االرجاع ( للعدد الصحيح ‪ int‬و للعدد العشري ‪ double‬وللنص ‪) String‬‬

‫اطار العمل ‪Frame‬‬


‫هااو شاشااه تقااوم باااحتواء كافااة االدوات ‪ Palette‬وه اي عبااارة عاان نافااذة للعاارض‬
‫‪ Window‬يتم انشائها تلقائيا بدون تحكمات ‪.‬‬

‫االدوات ‪Palette‬‬
‫وهاي عباارة عان مجموعاة مان الكائناات (األشاياء ‪ )Objects‬توضاع فاي النمااوذج‬
‫مثال زر ‪ Button‬او حقاال نصااي ‪ TextField‬أو صاندوق إطاار الصااورة وغيرهااا‬
‫الكثياار وكاال تحكاام تتااوافر معااه مجموعااه ماان الخصااائص المعروفااة ويااتم اختيااار‬
‫االداه ثم االنتقال الى اطار العمل بعد ذلي يتم افاالت هاذه االداه لتساقط فاوق االطاار‬
‫وعند تنفيذ البرنامج واظهار االطار الذي يحتوي على هذه االدوات ياتم النقار عليهاا‬
‫وعملية النق ر أو أي عمليه اخرى تتم على هذه االداه تسمى اجراء ‪.‬‬

‫الخصائص ‪Properties‬‬
‫تتحكم في خوا الكائن من ناحياة اللاون والشاكل والحجام ومحتوياتاه وموقعاه لاذا‬
‫فان خوا الكائن تستخدم لوصف أو تحديد تصرفات هذا الكائن‪.‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 17 -‬‬ ‫‪[email protected]‬‬
‫الحدث ‪Event‬‬
‫ترمااز الااى حاادوث تااأثير يختلااف نااوع التااأثير ع لااى هااذا الشاايء (االداه أو الكااائن)‬
‫واألحداث تعتبر نشاط للكائن تشامل مجموعاه مان التاأثيرات مثال الضاغط علاى أو‬
‫التأشااير بالفااأرة علااى أو دخااول المخشاار علااى او خااروج المخشاار ماان او التنق ال‬
‫بلوحة المفاتيح فوق أو اختياار مان القائماة المنسادلة وغيرهاا الكثيار‪ .‬ويناتج عان أي‬
‫حاادث اجااراء يختلااف االجااراء باااختالف الحاادث‪ .‬حيااث أن لكاال حاادث علااى األقاال‬
‫اجراء واحد او أكثر‪ .‬وللعلم كل حدث يرتبط بأسلوع أو طريقه ‪ Method‬أو إجراء‬
‫معين‬

‫االجراء ‪Procedure‬‬
‫عند حدوث النقر أو االختيار ألداة التحكم يصدر عنها اجراء‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 18 -‬‬ ‫‪[email protected]‬‬
‫الوحدة الثانية‬
‫التعرف على مكونات النت بينز ‪ -‬جافا‬

‫مراحل البرمجة بالجافا‬


‫إلنشااء تطبيقااات ومشاااريع بلغاة الجافااا يجااب علياي ان تعاارف ثااالث خطااوات‬
‫أساسيه ‪:‬‬
‫الخطوة األولى ‪ :‬إنشاء الواجهة ‪.‬‬
‫الخطوة الثانية ‪ :‬ضبط الخصائص ‪.‬‬
‫الخطوة الثالثة ‪ :‬كتابة البرنامج ‪.‬‬
‫انشاء واجهة‬
‫‪ -1‬اباااادأ منصااااة الـااااـ‪ : NetBeans‬انقاااار زر اباااادأ ‪ Start‬ثاااام الباااارامج‬
‫‪ Programs‬ثم اختر ‪ NetBeans‬ثم ‪NetBeans IDE 7.4‬‬
‫( الح أن رقم النسخة يتغير بتغير االصدارات )‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 19 -‬‬ ‫‪[email protected]‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 20 -‬‬ ‫‪[email protected]‬‬
‫‪ -2‬ماان قائــااـمة الملااف ‪ File‬اشــااـر بالفااأرة علااى أمـــااـر مشااروع جـااـديد‬
‫‪... New Project‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 21 -‬‬ ‫‪[email protected]‬‬
‫قم بتغيير اسم المشروع مثال الى ‪First_Project /‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 22 -‬‬ ‫‪[email protected]‬‬
‫‪ -3‬انقر عند ‪ Create Main Class‬في الجزء السفلي في مربــــــــع اسم‬
‫الحزمه واسم الكالس ثم قم بتغيير اسم الحزمه الى ‪Package1‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 23 -‬‬ ‫‪[email protected]‬‬
‫ثم قم بتغيير اسم الكالس الى ‪Class1‬‬

‫‪ -4‬انقر زر انهاء ‪ Finish‬ستظهر لي الشاشه كالتالي‪:‬‬

‫بذلي نكون قد انهينا انشاء مشروع جديد يحتوي بداخله علاى حزماه واحاده‬
‫هذه الحزمه تحتوي على فئة كالس واحده ‪.‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 24 -‬‬ ‫‪[email protected]‬‬
‫اضافة نموذج جديد للتطبيق ( ‪Adding a New Form to the‬‬
‫‪)Application‬‬
‫يتوفر معالج ‪ Wizard‬في منصة ‪ NetBeans‬إلنشاء إطاار عاام أو هيكال‬
‫مشروع إلنشاء نموذج واجهة التطبيق ( ‪ . ) GUI‬ولعمل ذلي نقوم بتحدياد‬
‫الحزمااه التااي نرغااب بءنشاااء هااذا النمااوذج بااداخلها ثاام يااتم الضااغط بااالزر‬
‫األيمن للفأرة فتنسدل قائمه نختاار األمار جدياد ‪ New‬فتنسادل قائماه فرعياه‬
‫بهاااا مجمــــاااـوعه مااان الفئـــاااـات المختلفاااة نختــــاااـار منــــاااـها الفئــــاااـة‬
‫‪ JFrame Form‬كالتالي‪:‬‬

‫فتظهر لنا هذه النافذة ‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 25 -‬‬ ‫‪[email protected]‬‬
‫نقوم بتغيير االسم ان رغبنا الى اسم مناسب وليكن ‪Class2‬‬

‫ثم بعد ذلي يتم الضغط على زر انهاء ‪.Finish‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 26 -‬‬ ‫‪[email protected]‬‬
‫ه ذا الشكل العام لإلطار ولكنه فارغ من الكائنات ‪.‬‬
‫ولتنفيذ هذه الشاشه كل ما علينا فعله هو الذهاع بالمخشر الى اسم هذه الفئة‬
‫الفرعياه الموجااود فاي المقطااع االسااير ثام يااتم الضااغط باالزر االيماان للفااارة‬
‫فتنسدل قائمه نختار منها االمر تنفيذ الملف ‪Run File‬‬

‫فيتم تنفيذ الملف وتكون المخرجات كالتالي ‪:‬‬


‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 27 -‬‬ ‫‪[email protected]‬‬
‫الموجااود فااي الااركن العلااوي‬ ‫أغلااق هااذا اإلطااار وذلااي بالضااغط علااى‬
‫األيمن لكي نعود الى المنصة‪.‬‬

‫‪ -5‬الحاااااا تصااااااميم النمااااااوذج ‪ JFrameForm‬ومتصاااااافح المشااااااروع‬


‫والخصاااااااااااااااااااااااااااااااااااااااااااااااااااائص‪.‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 28 -‬‬ ‫‪[email protected]‬‬
‫تصميم نموذج وإضافة أدوات تحكم‬
‫أفتح أو أنشئ مشروعا جديدا كما تعلم ‪.‬‬
‫أضغط زر ‪ Ctrl‬مع ‪ Shift‬مع ‪ 8‬إلظهار صندوق األدوات ناحية اليمين ‪.‬‬

‫‪ -1‬ماان قائمااة أدوات ‪ Palette‬أنقاار عنااد زر األماار ‪ Button‬وارساامه فااي‬


‫النموذج ‪. Form‬‬
‫قم بسحب الزر ‪ Button‬من القائمة وأفلته في النموذج ‪.‬‬
‫‪ -2‬ضاااابط الخصااااائص ‪ :‬ال حاااا أن الجافااااا قاماااا بتساااامية زر الااااتحكم‬
‫‪ jButton1‬ويمكننااااااا تغيياااااار اساااااامه أنظاااااار قائمااااااة الخصااااااائص‬
‫‪ Properties‬ناحيااة اليمااين فهااذه الخصااائص تحتااوي علااى اعاادادات‬
‫األلااوان والاانص ونااوع الخااط وحجمااه وارتفاعااه وبعااض الخصااائص‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 29 -‬‬ ‫‪[email protected]‬‬
‫األخاااااااااااااااااااااااااااااااااااااااااااااااااارى ‪.‬‬

‫‪ -3‬أضف زر تحكم آخر ‪ Button‬وغيار مسامى زري الاتحكم كماا تارى‬


‫‪.‬‬ ‫من ‪ jButton1‬الى مرحبا و ‪ jButton2‬الى‬

‫ذلي أنقر عند الزر مرحبا نقرا مزدوجا وأضف التعليمة ‪/‬‬

‫ذلي أنقر عند الزر انهاء نقرا مزدوجا وأضف التعليمة ‪/‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 30 -‬‬ ‫‪[email protected]‬‬
‫تذكر ‪ ‬يجب عليي ‪:‬‬
‫‪ ‬ضاابط الخصااائص ‪ Properties‬لااودوات التااي تاام تثبيتهااا فااي النمااوذج‬
‫المشروع ( زري التحكم ) والح مكان وجود الخصائص في النافذة‬
‫السابقة ( أسفل يمين النافذة ) ‪.‬‬
‫‪ -4‬قم بتنفيذ البرنامج وذلي بالضغط بالزر األيمن علاى اسام الفئاة ثام اختار‬
‫تنفيذ الملف ‪.Run File‬‬

‫إنشاء واجهة تطبيق ( نموذج وبرمجته )‬


‫يوجد تقليد جميل في تعليم لغ البرمجاة وهاو البادء فاي تصاميم وكتاباة برناامج‬
‫الترحيب ( مرحبا ) لذا تعاال بناا نتباع نفاس األسالوع لبرناامج صاغير يوضاح‬
‫كيف يمكن تصميم وتشغيل ألبسط البرامج ‪.‬‬

‫ال تنسى ما اتفقنا عليه سابقا عندما نريد انشاء برنامج ‪:‬‬
‫أوال = انشاء الواجهة ‪.‬‬
‫ثانيا = ضبط الخصائص ‪.‬‬
‫ثالثا = كتابة األوامر والتعليمات وتسمى البرنامج ( الكود )‬

‫إنشاء الواجهة‬
‫‪ -1‬قم بتشغيل منصة الــ ‪.NetBeans‬‬
‫‪ -2‬اختر من القائمة ‪ File‬الخيار ‪. New Project‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 31 -‬‬ ‫‪[email protected]‬‬
‫‪ -3‬حدد القالب بــ(‪ )Java Application‬بالنقر عليه بالفأرة ‪.‬‬
‫‪ -4‬حدد اسم المشروع بـــ ‪ Hello‬والحزمة بـ ‪ P1‬والفئة كالس بــ ‪C1‬‬
‫‪ -5‬انقر زر الموافقاة ‪ Finish‬إلنشااء مشاروعي الجدياد الحا أن المشاروع‬
‫الجديد قد انشأ نموذج فارغ ‪.‬‬

‫‪ -6‬انقر أداة حقل النـــــــــص ‪ TextFiled‬في تبوياب لوحاة الرساام ‪Palette‬‬


‫واسحب الحقل وأقلته في النموذج ‪ . C2‬وللمعلومياه يساتخدم حقال الانص‬
‫إلظهاااار ناااص فاااي النماااوذج ويساااتعمل أيضاااا للحصاااول علاااى مااادخالت‬
‫المستخدم وسوف نستخدم هذا الحقل إلظهار رسالة (مرحبا بكم) عندما‬
‫يتم نقر زر ‪ jButton‬في النموذج ‪.‬‬

‫‪ -7‬أنقر عند أداة الزر ‪ Button‬و أفلته في النموذج أسفل مربع النص ‪.‬‬
‫الغر ض منه عندما يتم نقر هذا الزر فانه يطلب من البرنامج تنفيذ شيئا معينا‬
‫فحدث النقر يجب معالجته في البرنامج ‪.‬‬
‫لااذا أنشااأ زري أماار أحاادهما مكتااوع عليااه (ترحيااب) واآلخـااـر مكتااوع عليااه‬
‫(انهاء)‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 32 -‬‬ ‫‪[email protected]‬‬
‫ضبط الخصائص‬
‫وذلي بالضغط بالزر األيمن على الكائن ثم اضغط على خصائص‬
‫‪Properties‬‬
‫قم بضابط الخصاائص لحقال الانص ‪ TextField‬وزري األمار ‪ Button‬تبعاا‬
‫للجدول التالي ‪:‬‬
‫التعبئة ( القيمة)‬ ‫الخاصية‬ ‫اسم الكائن‬
‫( فارغ )‬ ‫‪text‬‬ ‫‪jTextFiled1‬‬
‫ترحيب‬ ‫‪text‬‬ ‫‪jButton1‬‬
‫انهاء‬ ‫‪text‬‬ ‫‪jButton2‬‬

‫ثالثا ‪ :‬كتابة األوامر والتعليمات ‪:‬‬


‫‪ -1‬بعد أن سمي زر األمر ترحيب توجه الى حقل الانص ثام قام بالضاغط‬
‫على الزر األيمن سوف تنسدل قائمه اختر منها األمر خصائص ‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 33 -‬‬ ‫‪[email protected]‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 34 -‬‬ ‫‪[email protected]‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 35 -‬‬ ‫‪[email protected]‬‬
‫ولتحويل جهة الحقل النصي في الكتابة من اليمين الاى اليساار نقاوم بتيار‬
‫خاصية ‪ horizontalAlignment‬الى ‪RIGHT‬‬

‫وللحصول على اسم األساسي للحقل النصي (‪ )Variable name‬مان‬


‫الخصائص اختر التبويب ‪: code‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 36 -‬‬ ‫‪[email protected]‬‬
‫‪ -2‬ثم انقر على ‪ Variable Name‬وقم بنسخ اسم المتغير المقابل له فاي‬
‫الجهة األخرى وقم بتحديد االسم ثم قم بنسخه وذلي بالضاغط علاى زري‬
‫‪ CTRL‬و ‪ C‬من لوحه الفاتيح‪.‬‬

‫‪ -3‬اآلن قم بالعودة الى شاشه التصاميم ثام اضاغط علاى زر ترحياب وذلاي‬
‫بالنقر عليه نقرا مزدوجا _الح ظهاور شاشاة الكاود_ الصاق الاذي قما‬
‫بنسخه وذلي بالضغط على ‪ CTRL‬و ‪ V‬من لوحه المفاتيح‪:‬‬
‫‪jTextField1‬‬
‫بعد ذلي اضغط على زر النقطة (دوت) ( ‪ ) .‬من لوحة المفاتح ‪:‬‬
‫‪jTextField1 .‬‬
‫ستنسدل قائمه اختر منها األمر ‪: setText‬‬
‫; )(‪jTextField1 . setText‬‬

‫أكمل كتابة السطر وذلي بكتابة المحتاوى النصاي الاذي ترغاب بطباعتاه داخال‬
‫الحقل النصي بحيث يكون داخل عالمتي تنصيص ‪-:‬‬
‫; ) " مرحبا بكم " (‪jTextField1 . setText‬‬

‫‪ -4‬قام بترجمااة وتنفيااذ البرنااامج (وذلااي باختيااار االماار ‪ Run File‬أو عاان‬
‫طريااق لوحااة المفاااتيح بالضااغط علااى ‪ ) Shift+F6‬الحا المشااهد‬
‫التالي ‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 37 -‬‬ ‫‪[email protected]‬‬
‫أنقر الزر ترحيب فيقاوم البرناامج بعارض التحياة ( مرحباا بكام ) كماا هاو‬
‫مبين‪:‬‬

‫الح شاشة تنفيذ البرنامج السابقة و بها ‪:‬‬


‫‪ -1‬زر اإلغالق ‪. Close x‬‬
‫‪ -2‬زر التكبير‪.‬‬
‫‪ -3‬زر التصغير ‪.‬‬
‫‪ -4‬النموذج وفيه كافة كائنات األدوات التي أضفتها ‪.‬‬
‫‪.‬‬ ‫للخروج أنقر زر اإلغالق‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 38 -‬‬ ‫‪[email protected]‬‬
‫هنالك فرق بين دالة ‪ Set‬و ‪-: Get‬‬

‫‪ Set )1‬تقوم بءدراج محتوى نص داخل اداه محدده‬


‫ولكن ‪ Get‬العكس حيث تأخذ نسخه من المحتوى النصي‬
‫الموجود في االداه‬

‫‪ Set )2‬تأخذ معها داخل القوسين المحتوى النصي المراد‬


‫ادراجها (وهذي يطلق عليها بارامتر وتعني معامل‬
‫‪ ) parameter‬ويجب أن يكون المحتوى النصي داخل‬
‫عالمتي تنصيص‬
‫ولكن ‪ Get‬ال تأخذ شيء (قوسين دائريه لكن بدون معامل)‬

‫‪ Set )3‬ال تسبق بءسناد ( أي ال توضع قبلها عالمة التساوي أو‬


‫موضع اسناد )‬
‫ولكن ‪ Get‬تــكتب أساسا لإلسناد ( أي توضع قبلها عالمة‬
‫التساوي أو أي موضع إسناد )‪.‬‬

‫تمارين‪-:‬‬
‫تمرين (‪ / )1‬أنشاء برنامج يقوم بعرض نوع سياره ورقم‬
‫هيكلها ورقم اللوحه وذلي باستخدام دالة الحقول النصيه‬
‫بحيث يكون التصميم مشابه لهذا الشكل ‪-:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 39 -‬‬ ‫‪[email protected]‬‬
‫تمرين (‪ / )2‬أنشاء برنامج يقوم بعرض اسم سلعه ورقم‬
‫الباركود لهذه السلعه كذلي سعرها وذلي باستخدام دالة‬
‫الحقول النصيه بحيث يكون التصميم مشابه لهذا الشكل ‪-:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 40 -‬‬ ‫‪[email protected]‬‬
‫الوحـــــــــدة الثالثه‬
‫تعريف المتغيرات‬

‫تعريف المتغيرات وكيفية استخدامها‬


‫المتغير هي عبارة عن اسم لخانة من نوع محدد وذات سعه محدد يتم استخدامها لتخزين‬
‫قيم محدده لفترة زمنية محدده ( يتم ذلي داخل الذكره المخقتة ‪ RAM‬فقط طيلة عمل‬
‫البرنامج ) ‪.‬‬

‫أنواع المتغيرات في الجافا‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 41 -‬‬ ‫‪[email protected]‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 42 -‬‬ ‫‪[email protected]‬‬
‫ماذا يحدث داخل ذاكرة الجهاز للمتغيرات ؟‬

‫نالحظ في الشكل التالي ‪:‬‬


‫متغير اسمه ‪ age‬نوعه ‪ int‬اسندنا له قيمه ‪20‬‬
‫نالحظ أيضا بأن السطر ينتهي بفاصله منقوطه ‪ ،‬وهذي قاعده عامه في لغة‬
‫الجافا ‪ ،‬حيث الفاصله المنقوطه تعني نهاية السطر او الفقره البرمجيه‪.‬‬
‫نالحظ أيضا أنه يتم تخزين القيمه في خانه ‪ ،‬هذه الخانه داخل الذاكره العشوائيه‬
‫كما يتضح بالشكل‪.‬‬

‫ماهو المقصود باالسناد ؟‬


‫يرمزلها بعالمة ( = ) وهي عباره عن وسيط بين نقل قيمه الى موقع ونستعمل‬
‫العالمة ( = ) بعد اسم المتغير ومن ثم نحدد القيمه الجديدة ‪ .‬كما هو واضح في المثال‬
‫أعاله ‪.‬‬

‫البيانات األوليه (‪)Primitive Data Types‬‬


‫هي عباره عن أنواع البيانات المعروفه والموجوده مسبقا في مكاتب الجافا ولهذا‬
‫السبب تم تسميتها أوليه (‪ )Primitive‬وهي ثمانية انوع ‪-:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 43 -‬‬ ‫‪[email protected]‬‬
‫هنالي أنواع اخرى من المتغيرات أحد هذه االنواع اسمه ‪ String‬وهو يتبع المتغيرات‬
‫الغير أوليه (‪. )non-primitive‬‬
‫هنا بعض االمثلة على استخدام بعض من هذه المتغيرات وكيفية التعامل معها ‪-:‬‬

‫‪int var =20‬‬ ‫;‬


‫; ‪var = 20‬‬

‫; ‪double num‬‬
‫; ‪num = 2.95‬‬

‫; ‪String name‬‬
‫; " مرحبا بي"=‪name‬‬

‫في ب عض أنواع المتغيرات نضع القيمة تلقائيا وفي بعض األنواع األخرى يجب وضع‬
‫عالمتي تنصيص كما هو موضح في المثال السابق حيث سيكون لديي كامل الحرية في تعيين‬
‫قيمه للمتغير ‪ name‬في البرنامج ‪.‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 44 -‬‬ ‫‪[email protected]‬‬
‫تستخدم هذه العمليه لتخصيص قيمه ما في متغير وذلي بعد تعريفه ونستخدم العمليه =‬
‫للتعبيرعن التخصيص في لغة الجافا‪ .‬أمثله ‪:‬‬

‫; ‪X=1‬‬
‫تم تخصيص ‪ 1‬إلى المتغير ‪ X‬حيث ‪ X‬متغير من نوع عدد صحيح ‪.integer‬‬

‫لكن هنا ‪-:‬‬


‫; ‪Radius= 1.5‬‬

‫تم تخصيص القيمة ‪ 1.5‬إلى المتغير ‪ Radius‬من نوع عدد عشري ‪double‬‬

‫وهنا ‪-:‬‬

‫; ”‪a= “Ahmad‬‬
‫تم تخصيص كلمة “ ‪ ”Ahmad‬إلى المتغير ‪ a‬من نوع قيمه نصيه ‪. String‬‬

‫خطـــــأ شائـــع‬

‫تخصيص قيمه من نوع بيانات مختلفة عن نوع المتغير فمثالً إذا كان ( ‪ ) X=1.0‬تعطي‬
‫خطأ وذلي إذا كان ‪ X‬معرف على أنه قيمه صحيحة ‪ int‬لذلي يجب أن يكون معرف على‬
‫أنه ‪ double‬أي يقبل العشري‪.‬‬

‫; ‪1=X‬‬

‫في هذه الصيغة يجب أن يكون المتغير في الجهة اليسرى وليس اليمنى‪.‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 45 -‬‬ ‫‪[email protected]‬‬
‫عامل الزيادة عامل النقصان‪/‬‬

‫تمدنا لغة الجافا بعامل الزيادة ‪ ++‬وعامل النقصان ‪ --‬ويستطيع المبرمج زيادة قيمة متغير‬
‫بمقدار واحد عن طريق استخدام عامل الزيادة ‪ ++‬مثل ‪- :‬‬

‫; ‪C++‬‬

‫وذلي بدالً من استخدام أي من الجمل التالية ‪:‬‬

‫; ‪C += 1‬‬ ‫‪OR‬‬ ‫;‪C=C+1‬‬

‫ويمكن كتابة عامل الزيادة أو عامل النقصان قبل أو بعد المتغير وذلي حسب الحاجة‬
‫الستخدامه داخل البرنامج ‪.‬أنظر الشكل التالي ‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 46 -‬‬ ‫‪[email protected]‬‬
‫مثال على استعمال المتغيرات في برنامج ‪/‬‬

‫الناتـــــــــــــج ‪/‬‬

‫مثـــــــال اخــــــــــــــــر ‪/‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 47 -‬‬ ‫‪[email protected]‬‬
‫الناتـــــــــــــج ‪/‬‬

‫مثـــــــال اخــــــــــــــــر ‪/‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 48 -‬‬ ‫‪[email protected]‬‬
‫استعمال المتغير في البرنامج ‪/‬‬

‫يمكن للمتغير أن يحاف على قيمته طول عمل البرنامج ويمكنه أيضا أن يغير‬
‫هذه القيمه الى أخرى وجميع قيم المتغيرات تطبع فعليا بصيغ نصيه لكن يتم‬
‫التعامل معها داخل البرنامج اعمادا على نوعها‪.‬‬

‫دمج الحروف وسالسل الحروف ‪/‬‬


‫نستعمل معامل ضم السالسل ‪ +‬ومثال ذلي ‪:‬‬
‫; ‪String Msg‬‬
‫; ”! ‪Msg = “Hello” + ”And” + “Welcome‬‬
‫;) ‪System.out.print( Msg‬‬
‫سيكون الناتج وبدون مسافات‪/‬‬
‫!‪HelloAndWelcome‬‬

‫التعامــل مع صناديــق الحـــوار ( االستعانة بمكتبـة فئات الجافــا ) ‪/‬‬

‫نستعمل الوظيفة ‪ JOptionPane‬للتعامل مع صناديق الحوار حيث لها أكثر من حالة حاله‬
‫من الحاالت تقوم بعرض رسالة اخراج وهي ‪:‬‬
‫; ) " " ‪JOptionPane.showMessageDialog( null ,‬‬

‫وحاله أخرى رسالة إدخال حيث تقوم بأخذ قيمة من المستخدم وهي ‪:‬‬
‫; ) " " ‪JOptionPane.showInputDialog( null ,‬‬
‫ويجب ان نستعين بالجملة ‪ import‬في أول البرنامج لجلب مكتبة ‪ javax‬والتي تحتوي على‬
‫حزمة ادوات ندرج تح مسمى ‪.swing‬‬
‫وذلي لالستعانة بمكتبة البرامج للتعامل مع صناديق الحوار ‪.‬‬

‫مثال ‪:‬‬
‫; * ‪import javax . swing .‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 49 -‬‬ ‫‪[email protected]‬‬
‫تمرين‪ /‬انشاء الواجهة‬
‫‪ -1‬قم بتشغيل منصة "‪"NetBeans‬‬
‫‪ -2‬اختر األمر ‪ File‬ثم ‪.New Project‬‬
‫‪ -3‬حدد طبقة العمال ‪ Java‬مان ‪ Category‬ثام ‪Java Applicaion‬‬
‫من قالب العمل ‪ Project‬ثم اضغط على زر التالي ‪Next‬‬
‫‪ -4‬غير اسم المشروع الى ‪ variables‬ثم اسم الحزمه الى ‪ P1‬واسم‬
‫الفئة الى ‪C1‬‬
‫انقر زر إنهاء ‪ Finish‬إلنشاء مشروعي الجديد ‪.‬‬
‫‪ -5‬انشااأ فئااة جدياادة دخاال الحزمااة ‪ P1‬ماان نااوع ‪ jFrame‬كمااا تعلما‬
‫سابقا وقم بتسميته مثال ‪ myVariables‬ثم اضاغط علاى زر إنهااء‬
‫‪.Finish‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 50 -‬‬ ‫‪[email protected]‬‬
‫أضف زري أمر ‪ Buttons‬وأداتي حقل نصي ‪TextField‬‬
‫تغيير الخصائص‬
‫أ ) سم خاصية الزر ‪ Button1‬بـــالتعامل مع المتغيرات ‪.‬‬
‫ع) سم خاصية الزر ‪ Button2‬بــخــروج من البرنــــــامج ‪.‬‬
‫جـ) امسح محتوى خاصية نص ‪ text‬للحقل النصي األول والثاني‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 51 -‬‬ ‫‪[email protected]‬‬
‫‪ -1‬يظهر النموذج كالمشهد التالي ‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 52 -‬‬ ‫‪[email protected]‬‬
‫‪ -2‬انقر عند الزر التعامل مع المتغيرات نقرا مزدوجا تظهر شفرة البرنامج في‬
‫محرر كتابه وتعديل البرنامج ‪.‬‬

‫كتابـة الكــــود‬

‫‪ -3‬عند كتابة اسم المتغير سنالح وجود خط متعرج اسفل هذا المتغير بلون‬
‫هذا الخط يعني بأنه لم يتم استخدام هذا المتغير حتى هذه اللحظه‪ .‬ولكن‬ ‫باه‬
‫عندما نعطي قيمة ويتم استخدامها برمجيا يختفي هذا الخط‪.‬‬
‫‪ -4‬انقر عالمة التبويب ]‪ [Design‬إلظهار نموذج التصميم مره أخرى ‪.‬‬
‫‪ -5‬انقر زر األمر خروج من البرنامج نقرا مزدوجا يظهر المصدر للبرنامج ‪.‬‬
‫‪ -6‬اكتب جملة األمر ‪:‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 53 -‬‬ ‫‪[email protected]‬‬
‫; (‪System.exit(0‬‬
‫‪ -7‬انقر امر تنفيذ المشروع لتشغيل البرنامج ستظهر النافذة كما يلي ‪:‬‬

‫‪ -8‬أنقر عند الزر التعامل مع المتغيرات ‪.‬‬

‫‪ -9‬نشاهد المخرجات التالية ‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 54 -‬‬ ‫‪[email protected]‬‬
‫‪ -10‬انقر زر األمر خروج من البرنامج إليقاف تشغيل البرنامج والخروج منه‪.‬‬

‫مثال اخر ‪/‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 55 -‬‬ ‫‪[email protected]‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 56 -‬‬ ‫‪[email protected]‬‬
‫العمليـــــات الحســـــابية وطريقــــة التحويــــل من نص الى رقــــم‬
‫تمكننا لغات البرمجة من اجراء كافة العمليات الحسابيه وتستعمل هذه‬
‫العمليات مجموعه من العوامل انظر الجدول التالي ‪:‬‬

‫مثال‬ ‫الوصف‬ ‫العامل‬


‫‪x+y‬‬ ‫‪5+10=15‬‬ ‫جمع‬ ‫‪+‬‬
‫‪y-z‬‬ ‫‪15-10=5‬‬ ‫طرا‬ ‫ـــ‬
‫‪a*b‬‬ ‫‪4*5=20‬‬ ‫ضرع‬ ‫*‬
‫‪c/d‬‬ ‫‪22/ 5 =4.4‬‬ ‫قسمه‬ ‫‪/‬‬
‫‪c\d‬‬ ‫‪20\4=5‬‬ ‫قسمة رقم صحيح‬ ‫\‬
‫‪i Mod k‬‬ ‫‪7 Mod 3=1‬‬ ‫باقي القسمة‬ ‫‪Mod‬‬
‫‪i^ k‬‬ ‫‪3^2 = 9‬‬ ‫رفع الرقم الى األس‬ ‫^‬
‫‪“Hat” + 5 = Hat5‬‬ ‫ضم سالسل الحروف‬ ‫‪+‬‬

‫ويسهل التعامل مع العمليات الحسابية حيث يمكن التعامل معها في معادله أو‬
‫صيغه حسابيه كما رأي في الجدول تعال بنا في المشروع لنرى كيف يمكني‬
‫استعمالها ‪:‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 57 -‬‬ ‫‪[email protected]‬‬
‫أوال ‪ /‬انشاء الواجهه ‪:‬‬
‫‪ -1‬قم بتشغيل منصة "‪"NetBeans‬‬
‫‪ -2‬اختر األمر ‪ File‬ثم ‪.New Project‬‬
‫‪ -3‬حدد طبقة العمل ‪ Java‬من ‪ Category‬ثام ‪Java Application‬‬
‫من قالب العمل ‪ Project‬ثم اضغط على زر التالي ‪Next‬‬
‫‪ -4‬غير اسم المشروع الى ‪ math‬ثم اسم الحزمة الى ‪ P1‬واسم الفئة‬
‫الى ‪C1‬‬
‫انقر زر إنهاء ‪ Finish‬إلنشاء مشروعي الجديد ‪.‬‬
‫‪ -5‬انشأ فئاة جديادة دخال الحزماة ‪ P1‬مان ناوع ‪ jFrame‬كماا تعلما‬
‫سابقا وقم بتسميته مثال ‪ c2‬ثم اضغط على زر إنهاء ‪.Finish‬‬

‫‪ -6‬أضف زري امر ‪ Buttons‬وحقلي نص (‪ )TextField‬لكتابة االرقام فيها‬


‫وحقلي نص لحساع الناتج واربع الصق ( ‪ ) Label‬لتوضيح المراد من الحقول‬
‫بجانب كل حقل بالخصائص التاليه ‪:‬‬
‫أ – نسمي خاصية الزر ‪ Button1‬بحساع ‪.‬‬
‫ع – نسمي خاصية الزر ‪ Button2‬بخروج ‪.‬‬
‫جـ ‪ -‬نسمي خاصية مربع النص األول ‪ jField1‬وضع عنوانه باسم العدد‬
‫األول ‪.‬‬
‫د – نسمي خاصية مربع النص الثالث ‪ jField2‬وضع عنوانه باسم العدد‬
‫‪.‬‬ ‫الثاني‬
‫هـ ‪ -‬نسمي خاصية مربع النص الثالث ‪ jField3‬وضع عنوانه باسم‬
‫حاصل الجمع ‪.‬‬
‫و – حدد عنوان زر الراديو االول بجمع والثاني بطرا والثالث بضرع‬
‫والرابع حاصل الضرع ‪.‬‬

‫‪-7‬يظهر النموذج كالمشهد التالي ‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 58 -‬‬ ‫‪[email protected]‬‬
‫‪ -8‬انقر عند الزر حساع نقرا مزدوجا تظهر شفرة البرنامج في محرر كتابة‬
‫وتعديل البرنامج ‪.‬‬
‫‪ -9‬اكتب األوامر او الجمل التالية لتعريف واستعمال متغيرات من النوع (عدد‬
‫صحيح ‪ ) int‬ثم أكمل البرنامج كما في السطور التالية ‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 59 -‬‬ ‫‪[email protected]‬‬
‫انـتـبــــــه ‪:‬‬
‫‪ ‬التعريف ‪ int‬احد انواع البيانات المستخدمه في الجافا من نوع الرقم‬
‫القصير والـ ‪ Double‬من نوع االرقام الطويله ( كبيره ) ‪.‬‬
‫‪ ‬في عمليتي الـ( الطرا والقسمه ) يجب األنتباه ومراعاة اي العددين األول‬
‫وايهما الثاني ‪.‬‬
‫‪ -10‬انقر عالمة التبويب تصميم ‪ Design‬الظهار نموذج التصميم ‪.‬‬
‫‪ -11‬انقر زر المر ‪ Exit‬نقرا مزدوجا يظهر البرنامج الحدثي‬
‫‪ -12‬اكتب جملة األمر ‪ End‬النهاء البرنامج ‪.‬‬
‫‪ -13‬انقر أيقونة زر التنفيذ المشروع ‪ Run‬لتشغيل البرنامج ‪.‬‬
‫‪ -14‬حدد العملية بوضع القيم في الخانة األولى والثانية‬
‫‪ -17‬كرر التنفيذ لتحديد عمليه أخرى لنشاهد المخرجات التاليه ‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 60 -‬‬ ‫‪[email protected]‬‬
‫‪ -18‬انقر زر األمر خروج اليقاف تشغيل البرنامج ‪.‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 61 -‬‬ ‫‪[email protected]‬‬
‫الوحدة الرابعه‬
‫اجراء العمليات الحسابية وكتابة برامج‬

‫األساليب الحســــــــــابية‬

‫تقدم لنا لغة الجافا الئحة باألساليب الحسابية في الفئة ‪Math‬‬


‫انظر الجدول التالي لمعرفة بعضا من هذه الالئحة الحسابيه ‪.‬‬

‫الوصف‬ ‫الطريقه‬
‫)‪ Abs(n‬ترجع القيمه المطلقه للرقم ‪. n‬‬
‫)‪ Sign(n‬ترجه القيمه ‪ 1-‬اذا كان ‪ n‬اقل من الصفر صفر اذا كان ‪ n‬تساوي صفر‬
‫‪ 1+‬اذا كان ‪ n‬اكبر من الصفر ‪.‬‬
‫)‪ Exp(n‬حساع القيمه ‪ e‬مرفوعا لوس ‪. n‬‬
‫)‪ Sqrt(n‬حساع الجذر التربيعي لــ ‪. n‬‬
‫)‪ Sin(n‬حساع جيب الزاويه ‪ ( n‬حيث ‪ n‬بالتقدير الدائري ) ‪.‬‬
‫)‪ Cos(n‬حساع جيب تمام الزاويه ‪ ( n‬حيث ‪ n‬بالتقدير الدائري ) ‪.‬‬
‫)‪ Tan(n‬حساع ظل الزاويه ‪ ( n‬حيث ‪ n‬بالتقدير الدائري ) ‪.‬‬
‫)‪ Atan(n‬حساع عكس ظل الزاويه ‪ ( n‬حيث ‪ n‬بالتقدير الدائري ) ‪.‬‬

‫مثال ‪:‬‬
‫يقدم المثال التالي كيفية حساع الجذر التربيعي لرقم يتم قرائته من خالل لوحة‬
‫المفاتيح ( ‪. ) Keyboard‬‬
‫أوال ‪ :‬انشاء الواجهة ‪:‬‬
‫‪ -1‬قم بتشغيل منصة "‪"NetBeans‬‬
‫‪ -2‬اختر األمر ‪ File‬ثم ‪.New Project‬‬
‫‪ -3‬حدد طبقة العمال ‪ Java‬مان ‪ Category‬ثام ‪Java Applicaion‬‬
‫من قالب العمل ‪ Project‬ثم اضغط على زر التالي ‪Next‬‬
‫‪ -4‬غير اسم المشروع الى ‪ sqrt‬ثم اسم الحزمة الاى ‪ P1‬واسام الفئاة‬
‫الى ‪C1‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 62 -‬‬ ‫‪[email protected]‬‬
‫‪ -1‬أضف زر أمر ‪ Buttons‬ومربعي نص احدهما لقراءة الرقم والثاني لطباعة‬
‫الجذر التربيعي فيه أضف ملصقين وقم بتسميتهما (ادخل لرقم) و ( الجذر‬
‫التربيعي) قم بتغيير الخصائص التالية ‪:‬‬
‫أ‪ -‬سمي خاصية الزر ‪ Button1‬بــأوجد القيمة ‪.‬‬
‫ع‪ -‬سمي خاصية الالصق األول بأدخل الرقم والثاني بالجذر التربيعي‬
‫ج‪ -‬امسح ما بداخل الحقول النصية‬

‫‪ -2‬يظهر النموذج كالمشهد التالي ‪:‬‬

‫‪ -3‬أتقر عند الزر اوجد القيمة نقرا مزدوجا تظهر شفرة البرنامج في محرر كتابة‬
‫وتعديل البرنامج ‪.‬‬

‫‪ -4‬اكتب االوامر أو الجمل التالية لتعريف واستعمال متغير من النوع ‪ Double‬ثم‬


‫اكمل البرنامج كما في السطور التاليه ‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 63 -‬‬ ‫‪[email protected]‬‬
‫‪ -5‬انتبـــه ‪:‬‬
‫‪ o‬التعريف ‪ Integer‬احد أنواع البيانات المستخدمة في لغة الجافا من نوع‬
‫الرقم الصحيح ‪.‬‬
‫‪ o‬التعريف ‪ Double‬احد أنواع البيانات المستخدمة في لغة الجافا من نوع‬
‫الرقم العشري‪.‬‬

‫‪ -6‬نفذ الملف لتبدو شاشتي كالتالي ‪:‬‬

‫‪ -7‬قم بءدخال عدد في خانة ادخل الرقم ليتم حساع الجذر الربيعي له ‪.‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 64 -‬‬ ‫‪[email protected]‬‬
‫‪ -8‬انقر زر أوجد القيمة ‪.‬‬
‫‪ -9‬الح ناتج الضغط وهو حساع الجذر للعدد المدخل وتم وضعه في خانة الجذر‬
‫التربيعي ‪:‬‬

‫‪ -10‬كرر التنفيذ لتحديد عمليه أخرى لنشاهد المخرجات التالية ‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 65 -‬‬ ‫‪[email protected]‬‬
‫‪ -11‬انقر زر ‪ x‬إليقاف تشغيل البرنامج ‪.‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 66 -‬‬ ‫‪[email protected]‬‬
‫أسبقية تنفيذ العمليات الحسابيه‬

‫تتمتع لغات البرمجة بءمكانية حساع ناتج المعادالت الرياضية وتخضع أي معادله‬
‫لتعبـير حسابي انظر التعابير التالية ‪:‬‬
‫‪x=a+b–c‬‬ ‫;‬
‫‪y = x + 10‬‬ ‫;‬
‫‪z = x * y + 100 / b‬‬ ‫;‬
‫وتحل لغات البرمجة عامه ترتيب إجراء العمليات الحسابية ويوضح الجدول التالي‬
‫هذا الترتيب فاالسبقيه تأتي من السطر األول ثم الثاني وهكذا ‪..‬‬

‫مثال ‪ :‬تتبع العمليه الحسابيه التاليه ‪:‬‬


‫)‪Total = 10+10*2+900/3+10^2-(200-100‬‬
‫‪Total = 10+10*2+900/3+10^2-100‬‬
‫‪Total = 10+10*2+900/3+100-100‬‬
‫‪Total = 10+20 +900/3+100-100‬‬
‫‪Total = 10+20 +300 +100-100‬‬
‫‪Total = 30‬‬ ‫‪+300 +100-100‬‬
‫‪Total = 330‬‬ ‫‪+100-100‬‬
‫‪Total = 430‬‬ ‫‪-100‬‬
‫‪Total = 330.‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 67 -‬‬ ‫‪[email protected]‬‬
‫ويمكننا استعمال األقواس المتداخلة على ان يتم اجراء العملية داخل القوس الداخلي‬
‫اوال" ‪.‬‬
‫مثال ‪:‬‬
‫تتبع الخطوات التالية إليجاد ناتج حساع العملية ‪:‬‬
‫‪Result = 10+(100-(25*2))+10^2‬‬
‫)‪Result = 10+(100-50‬‬ ‫‪+10^2‬‬
‫)‪Result = 10+(50‬‬ ‫‪+10^2‬‬
‫‪Result = 10+ 50‬‬ ‫‪+100‬‬
‫‪Result = 60‬‬ ‫‪+100‬‬
‫‪Result = 160.‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 68 -‬‬ ‫‪[email protected]‬‬
‫الوحـــــــــــــــدة الخامسه‬
‫جمــــــل التحــــــــكم‬

‫لقاااد علمااا فاااي الوحااادات الساااابقة كيفياااة اساااتعمال المتغيااارات والعوامااال‬


‫والمعادالت أو التعبيرات الرياضية لتنفيذ اجاراء معاين وفاي هاذه الوحادة‬
‫سنتداول الجمل الشرطية لمقارنة المتغيرات والخصائص والقيم ‪.‬‬

‫أوال ‪ :‬جملـة اختيـــار الحالـــة‬


‫‪switch … case‬‬

‫والشكل البنائي لجملة ( ‪ ) switch case‬كما يلي ‪:‬‬


‫{ ) ‪switch ( Variable‬‬
‫‪case Value1 :‬‬
‫‪Statement 1‬‬ ‫; ‪; break‬‬
‫‪case Value2 :‬‬
‫‪Statement 2‬‬ ‫; ‪; break‬‬
‫‪case Value3 :‬‬
‫‪Statement 3‬‬ ‫; ‪; break‬‬
‫‪case Value N :‬‬
‫‪Statement N‬‬ ‫; ‪; break‬‬
‫‪default‬‬ ‫‪:‬‬
‫‪Statement N‬‬ ‫; ‪; break‬‬

‫}‬

‫جملة اختيار الحاله تستخدم لالختيار بين مجموعة قيم محدده ومعروفه مسبقا‬
‫وقد تكون هذه القيم اعداد أو حتى كلمات كما يتضح في المثال التالي ‪-:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 69 -‬‬ ‫‪[email protected]‬‬
‫في هذا المثال يتم عمل البرنامج اعتمادا على اعداد واضحة ومحدده هي ‪1‬‬
‫و ‪ 2‬و ‪ ، 3‬فتقوم الحالة بفحص القيم المتداولة والتي تم تمريرها داخل‬
‫المتغير ‪ roll‬وهذه القيمه تمثل رقم ‪ ، 3‬بعد ذلك يفحص البرنامج حالة‬
‫العدد عن طريق ‪ case‬فإذا كانت القيمه ‪ 1‬يقوم بتنفيذ محتوى هذا الحاله ثم‬
‫الخروج من دائرة عمل هذه الصيغه ( ‪ )switch … case‬وان لم تكن‬
‫يقوم البرنامج باالنتقال الى الحالة ‪ 2‬وهكذا حتى يصل الى الحاله الصحيحة‪.‬‬

‫مالحظه ‪ /‬كلمة ‪ break‬تعني توقف عمل البرنامج داخل اطار ودائرة عمل‬
‫هذه الصيغه ( ‪)switch … case‬‬

‫مثال ‪:‬‬
‫يبين المثال التالي طريقة حساب االشهر تبعا للخطة التالية ‪-:‬‬

‫يتم اظهار الشهر " محرم " و"يناير" اذا كان القيمه ‪.1‬‬ ‫«‬
‫يتم اظهار الشهر " صفر " و "فبراير" اذا كان القيمه ‪.2‬‬ ‫«‬
‫يتم اظهار الشهر " ربيع االول " و"مارس" اذا كان القيمه ‪.3‬‬ ‫«‬
‫وهكذا الى شهر " ذي الحجه " و "ديسمبر" اذا كان القيمه ‪.12‬‬ ‫«‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 70 -‬‬ ‫‪[email protected]‬‬
‫قم بتصميم النموذج التطبيقي _ كما تعلم _انظر المشهد التالي ‪:‬‬

‫انقر نقرا ً مزدوجا ً على زر األمر (انقر إلدخال رقم الشهر) وأدخل شفرة الكود التالي‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 71 -‬‬ ‫‪[email protected]‬‬
‫انقر على زر التنفيذ وتتبع شاشات التنفيذ كما يليـــ ‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 72 -‬‬ ‫‪[email protected]‬‬
‫مره اخرى ‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 73 -‬‬ ‫‪[email protected]‬‬
‫تدريب ‪:‬‬

‫‪ -1‬قم بتشغيل منصة الن بينز ‪.‬‬


‫‪ -2‬سمي المشروع بــ ‪. Case Test‬‬
‫‪ -3‬أضف شريطين ‪ Label2 Label1‬ومربع قائمه ‪ List1‬بالخصائص‬
‫التالية ‪:‬‬

‫‪ o‬حدد خاصية النص ‪ Text‬لــ ‪ Label1‬بــ" اختر دوله من القائمه‬


‫لتحصل على العاصمه" ونوع الخط بــ ‪ Tahoma‬و ‪ Bold‬و‬
‫حجمه ‪ 24‬نقطه ‪.‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 74 -‬‬ ‫‪[email protected]‬‬
‫‪ o‬حدد خاصية النص‪ Text‬لــ ‪ Label2‬بــ" لم يتم االختيار " ‪.‬‬

‫‪ o‬سمي انتقل الى خصائص الـ ‪ jList1‬وقم بءضافة ثالثة الدول‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 75 -‬‬ ‫‪[email protected]‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 76 -‬‬ ‫‪[email protected]‬‬
‫وعندما تنتهي من ضبط الخصائص سيبدو النموذج المرئي كما هو مبين‬
‫في المشهد التالي ‪:‬‬

‫ثانيا" = إضافة حدث البرمجة‬

‫‪ -1‬وأن في النموذج انقر بالزر األيمن على القائم ‪ jList1‬واختر أمر أحداث‬
‫‪ Events‬سوف تنسدل قائمه فرعيه بها مجموعه من قوائم األحداث اختر‬
‫‪ ListSelction‬ستنسدل قائمه أخرى تفرعيه تحتوي على الحدث‬
‫‪valueChanged‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 77 -‬‬ ‫‪[email protected]‬‬
‫قم باختياره يظهر لي الشكل التالي ‪-:‬‬

‫أضف شفرة الكود كما يلي ‪-:‬‬ ‫‪-2‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 78 -‬‬ ‫‪[email protected]‬‬
‫قم بتنفيذ البرنامج كما تعلم ‪ .‬سيظهر لي إطار العمل مشابه لما لي ‪-:‬‬ ‫‪-3‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 79 -‬‬ ‫‪[email protected]‬‬
‫لترجمــــة وتنفــــيذ المشـــــروع‬
‫من القائمة تشغيل (‪ )Run‬اختر ‪ Run Project‬أو أنقـــر على ‪ F6‬من‬
‫لوحه المفاتيح للتنفيذ‪.‬‬
‫الح أن مخرجات التنفيذ للنموذج الـــذي وضع كنموذج رئيســي‬
‫واآلخــر هو النموذج التابع ( الوارث ) ‪.‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 80 -‬‬ ‫‪[email protected]‬‬
‫المحاضره الثانيه‬
‫جملة الشرط ( ‪) if‬‬

‫يشبه الشكل البنائي للجملة ( ‪ ) if‬الشكل البنائي لجملة ( اختيار الحاله )‬


‫( ‪ ) switch case‬أكثاار فعاليااه عنادما تكااون القاارارات تعتماد علااى متغياار‬
‫رئيسي واحد لكن في حاله المدى تكون ‪ if‬الشرطيه اكثر فعاليه‪.‬‬

‫شكل جملة ( … ‪) if‬‬


‫يمكننا استعمال بنية القرار في جملة ( … ‪ ) if‬الشرطيه لتقييم شرط في‬
‫البرنامج وشكل بناء الجمله ( … ‪ ) if‬كما يلي ‪:‬‬
‫) شرط ( ‪if Condition‬‬
‫; ( جمله ( ‪Statement‬‬
‫مثــــــال =‬
‫)‪if (Mark > = 60‬‬
‫; )" لقد نجحت "(‪jTextField1.setText‬‬
‫تقوم الجمله بالتأكيد من قيمة المتغير ‪( Mark‬من نوع عدد صحيح) فءذا‬
‫كان هذه القيمه اكبر من أو تساوي ‪ 60‬يقوم بتنفيذ الجمله التي تليه‪.‬‬
‫وهذه الجمله تعرض خاصية النص " لقد نجح " في كائن مربع النص‬
‫‪ .jTextField1‬اما اذا كان قيمة المتغير ‪ Mark‬أقل من ‪ 60‬فيقوم‬
‫البرنامج بتخطي هذه الجمله وينفذ الجمله التي تليها‪.‬‬

‫ويعتبر التعبيار الشارطي أحاد األدوات لمعالجاة المعلوماات وهاذا التعبيار‬


‫يطرا سخال صح أم خطأ لذا توفر لغات البرمجة مجموعاه مان العوامال‬
‫التي يتم استخدامها في التعبيرات الشرطية وفاي المقارناات ( أحياناا تسامى‬
‫تعبيرات منطقيه ) أنظر الجدول التالي ‪:‬‬
‫مداولة ‪ /‬معناه‬ ‫عامل المقارنة‬
‫يســاوي‬ ‫==‬
‫ال يســــاوي‬ ‫=!‬
‫أكبر من‬ ‫>‬
‫أقل من‬ ‫<‬
‫أكبر من أو يساوي‬ ‫=>‬
‫أقل من أو يساوي‬ ‫=<‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 81 -‬‬ ‫‪[email protected]‬‬
‫شكل جملة ( ‪) if …else‬‬
‫كما علمنا في الجملة الشرطية ( ‪ )if‬وكيفية استخدامها نحتاج في كثير من‬
‫البرامج أن يكون هنالي خيار آخر في حالة عدم تحقق الشرط بحيث تظهر‬
‫رساله للمستخدم توضح له ذلي فمثال في المثال السابق اذا قام المستخدم‬
‫بءدخال قيمة اقل من ‪ 60‬تظهر رساله ( " لقد رسب " ) كما يلي ‪:‬‬

‫شكل جملة ( ‪ ) if …else‬الشرطيه المركبه‬


‫يمكننا شمل عدة جمل شرطيه في الجــــــافا وتحتوي هذه الجمل على‬
‫الكلمات الداله على تنفيذ الشرط انظر البناء التالي ‪:‬‬
‫شرط ‪if Condition 1‬‬
‫جمله ‪Statement 1‬‬ ‫;‬
‫شرط ‪else if Condition 2‬‬
‫جمله ‪Statement 2‬‬ ‫;‬
‫شرط ‪else if Condition 3‬‬
‫جمله ‪Statement 3‬‬ ‫;‬
‫‪else‬‬
‫; جمله ‪Statement N‬‬

‫يبين المثال التالي طريقة حساب التقدير لمقرر دراسي تبعا للخطة‬
‫التالية‪:‬‬
‫‪ ‬يتم اظهار التقدير (ممتاز) اذا كان الدرجه اكبر من أو يساوي ‪90‬‬
‫‪ ‬يتم اظهار التقدير (جيد جدا) اذا كان الدرجه اكبر من أو يساوي ‪80‬‬
‫وأقل من ‪90‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 82 -‬‬ ‫‪[email protected]‬‬
‫‪ ‬يتم اظهار التقدير (جيــد) اذا كان الدرجه اكبر من أو يساوي ‪70‬‬
‫وأقل من ‪80‬‬
‫‪ ‬يتم اظهار التقدير (مقبول) اذا كان الدرجه اكبر من أو يساوي ‪60‬‬
‫وأقل من ‪70‬‬
‫‪ ‬يتم اظهار التقدير (راسب) اذا كان الدرجه اقل من ‪60‬‬

‫استعمال العوامل المنطقية في جملة ( … ‪)if‬‬


‫تتيح لنا لغات البرمجة أدوات لربط وعمل شرط تركيبي اذا كنا نريد ضم أكثر‬
‫من معيار في بنية جمله ( … ‪ )if‬وتستخدم مجموعه من العوامل لهذا الربط‬
‫أنظر الجدول التالي ‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 83 -‬‬ ‫‪[email protected]‬‬
‫مدلوله ‪ /‬معناه‬ ‫عامل المقارنة التطبيقي‬
‫عامل الشرط "و" ‪.‬‬ ‫&&‬
‫عامل الشرط "أو" ‪.‬‬ ‫||‬
‫عامل الشرط "عكس" ‪.‬‬ ‫!‬

‫الربــــــــــــط بيـــن شــاشــــــات المشــــــــــروع‬

‫للربط بيــن شــاشــات مشــروع واالنتقال بين الشــاشــات أثنــاء عمـــل‬


‫وتنفيــذ البرنــامج يتم كتابــة الشـفـــــرة البــرمجيــة الخـــاصة بالتنقل بين‬
‫الشاشــــات مكـان الحــدث ليتم إجـــــــراء التنــقــل من شاشــة إلــــى‬
‫أخــرى مع مراعــــاة اسـم الشــــاشـــة البرمجــــــي ‪ ( Name‬الشــاشة‬
‫األولــــى والشــاشة الثــانيــة ) بان يكـــون مطابــق لالســم الفعــلـــي ‪.‬‬

‫الظهار الشاشه التاليه ‪new class2().setVisible(true) ; //‬‬


‫;)‪setVisible(false‬‬ ‫الخفاء الشاشه الحاليه ‪//‬‬

‫أو يمكن كتابة ‪//‬‬


‫;)(‪this.hide‬‬

‫حيث ‪ this‬تعني الشاشه الحاليه ‪//‬‬


‫;)(‪hide‬‬

‫مثــــــــــــــال تطبيقــــــــــــي ‪-:‬‬


‫يقدم البرنامج التالي كيفية أنشاء برنامج تطبيقي إلدخال اسم المستخدم ‪ First Name‬وكلمة‬
‫مرور ‪ Password‬ويتأكد من هاتين الكلمتين إلظهار رسالة ترحيبيه واعتمادا على صحة‬
‫المدخالن يتم توجيه المستخدم الى شاشه أخرى‪.‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 84 -‬‬ ‫‪[email protected]‬‬
‫مرحلة التصميم وضبط الخصائص‪:‬‬
‫‪-1‬‬
‫قم بتشغيل المنصة كما تعلم ‪.‬‬
‫‪-2‬‬
‫سمي المشروع باسم ‪ Password‬من النوع ‪. Java Applications‬‬
‫‪-3‬‬
‫قم بتصميم واجهة التطبيق من زري تحكم ‪ Button‬وقم بتسميتهما بدخــاـول‬
‫و خروج وقم بءضافة حقلي نص والصقان و الصق خا باءدراج صاوره‬
‫اختر الصاق ‪ jLabel‬مان الثالثاة ألدراج صاوره بداخلاه وذلاي بالضاغط‬
‫بالزر األيمن للفأرة ثم اختر خصائص‬

‫من خصائص اختر الزر المقابل لخاصية ‪ icon‬ستظهر نافذه جديده تطلب‬
‫اختيار مصدر الصوره ‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 85 -‬‬ ‫‪[email protected]‬‬
‫اختر الزر المقابال ‪ Extenal Image‬ساتظهر نافاذه تطلاب اختياار الصاوره‬
‫المرغوع ادراجها ‪:‬‬

‫بعد االختيار ثم الضغط على زر فتح ستظهر المعاينه ‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 86 -‬‬ ‫‪[email protected]‬‬
‫بعد ذلي يتم الضغط على زر موافق ‪OK‬‬
‫يتغير الشكل الكلي بما يشابه الشكل الحالي ‪:‬‬

‫مرحـــلة كتـــابة الكـــود‪:‬‬


‫قم ببرمجة الحدث البرمجي للـزر خروج بءضافة ‪:‬‬
‫(‪System.exit‬‬ ‫‪0‬‬ ‫)‬ ‫;‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 87 -‬‬ ‫‪[email protected]‬‬
‫قم ببرمجة الحدث البرمجي للزر دخـــول بءضافة الكود التالي ‪:‬‬

‫‪-4‬‬
‫أنقــر ‪ shift+F6‬للتنفيـــذ ‪.‬‬

‫ادخل اسمي وليكن كما هو محدد بالبرنامج ‪ 123‬والرقم السري ‪.111‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 88 -‬‬ ‫‪[email protected]‬‬
‫انقر الزر دخول ‪.‬‬
‫سيتم توجهنا الى شاشه المستخدم االول‬

‫وفي حاله وجود مستخدمين آخرين نستطيع توجيههم الى شاشات أخرى‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 89 -‬‬ ‫‪[email protected]‬‬
‫أماااااا إذا تااااام إدخاااااال كلماااااة مااااارور خاطئاااااة فااااانالح المشاااااهد التاااااالي ‪:‬‬

‫أنقر الزر خروج للخروج من تنفيذ التطبيق ‪.‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 90 -‬‬ ‫‪[email protected]‬‬
‫تحديـــــــد نمـــــوذج بدايــــة تنفيـــــذ المشــــــروع‬
‫في متصفح المشروع ‪ Projects Explorer‬يوجد اسم المشروع‬
‫الحالي ( فرضا ً اسمه ‪ ) NetBeansNote‬موجود بلون أسود عريـــض‬
‫قم بالضغط على هذا االسم بالزر األيــمن للفــــــأرة تنســدل قــائــمة‬
‫أخـــتـــــر األمـــر ‪( Properties‬خصــائـص) تظهــر نافــذة كالتــالي‬

‫من المحتــوى األيســر اختر ‪ ( Run‬تشغيل ) يتغير المحتوى في الطرف األيمن‬


‫كما يلي ‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 91 -‬‬ ‫‪[email protected]‬‬
‫في الفئة االساسيه المسماة ‪Main Class‬‬

‫يوجد بجانبها زر تصفح ‪ ، Browse‬قم بالضغط عليه ستظهر نافذة‬


‫تعرض بداخلها جميع الفئات الموجودة داخل هذا المشروع قم باختيار‬
‫الفئة التي تريدها ان تظهر أوال اثناء تنفيذ المشروع كما يلي ‪-:‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 92 -‬‬ ‫‪[email protected]‬‬
‫بعد ذلي قم بالضغط على الزر المسمى (‪. )Select Main Class‬‬

‫انشاء الملف التنفيذي (الجار ‪) jar‬‬


‫نقوم بالضغط بالزر األيمن للفأرة على اسم المشروع فتنسدل قائمة نختار‬
‫منها األمر ‪Clean and Build‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 93 -‬‬ ‫‪[email protected]‬‬
‫ماذا حصل ؟ لقد قام المعالج ببناء حزمة تنفيذية تحتوي على جميع ما‬
‫يحتاج الملف للتنفيذ اسمه مطابق السم المشروع ولكن ينتهي امتداده باسم‬
‫‪jar‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 94 -‬‬ ‫‪[email protected]‬‬
‫هذا الملف موجود داخل مجلد اسمه ‪ dist‬موجود داخل المشروع‬

‫كل ما علينا هو (انشاء اختصار) للملف الجار ثم نقوم بوضعه على‬


‫سطح المكتب أو أي مكان آخر فيتم عمل البرنامج بكفاءة وبدون أي‬
‫مشاكل‪.‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 95 -‬‬ ‫‪[email protected]‬‬
‫الوحــــــــــــــــدة السادسه‬
‫التكــــــــــــــــــــــــــــــرار‬

‫استخـــــــــدام جــملـــــــــــة ‪for‬‬


‫تعلمنا كيف يمكننا التحكم في سير البرنامج باستخدام بناء جملة ‪ if‬وفي الشرا‬
‫التالي سنتعرف على أنواع التكرار الشائع االستخدام وكيفية كتابة برنامج تطبيقي‬
‫من خالله لذا سنستخدم جملة التكرار باستخدام "… ‪. "for‬‬

‫الشكل البنائي لجملة ‪for‬‬


‫تستخدم جملة ‪ for‬لتكرار أو تنفيذ مجموعه من العمليات عددا محددا من المرات ‪.‬‬
‫والشكل البنائي لها يبينها المشهد التالي ‪:‬‬
‫) مقدار الزيادة أو النقصان ; معامل الشرط ; القيمة االبتدائية ( ‪for‬‬
‫{‬
‫جمل يتم تكرارها ‪//‬‬
‫}‬

‫مثال ‪:‬‬
‫يوضح المثال التالي استعمال التكرار لطباعة كلمة (مرحبا) عشر مرات ‪-:‬‬
‫; ‪int number‬‬
‫) ‪for ( number = 1 ; number <=10 ; number ++‬‬
‫{‬
‫;) "مرحبا " (‪System.out.print‬‬
‫}‬

‫حيث يعمل التكرار باالليه التالية ‪-:‬‬


‫ففي هذا المثال تم تعريف المتغير ‪ number‬بنوع بيانات من الرقم الصحيح‬
‫‪ Integer‬يبدأ التكرار بتحديد قيمه ‪ number‬بواحد ثم يستعمل أمر طباعه كلمه‬
‫( مرحبا ) ثم يذهب عند ‪ for‬ألخذ القيمة التالية للواحد ( أي اثنان ) ثم يطبع كلمه‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 96 -‬‬ ‫‪[email protected]‬‬
‫مرحبا مره أخرى وهكذا الى أن يصل للقيمة العاشرة فيتوقف عمل حلقه التكرار ‪.‬‬
‫وعند تنفيذ البرنامج السابق سنرى كلمة مرحبا قد تم طباعتها عشر مرات‪.‬‬
‫وال ننسى وجود مجموعه من التعليمات في الجافا تساعدنا على القيام بمجموعه من‬
‫المهام كنزول سطر جديد ( ‪ ) \n‬وازحه بمقدار ( ‪ ) \t‬وغيرها‬

‫مثال ‪:‬‬
‫قم بءعداد مشروع عمل إلظهار الرقم ومربعه ( االرقام من ‪ 1‬الى ‪. ) 10‬‬
‫‪ -1‬قم بتشغيل منصة الن بينز كما تعلم مع تحديد نوع التطبيق ‪.‬‬
‫‪ -2‬سمي المشروع بــ‪. Loop Test‬‬
‫‪ -3‬أضف زر أمر ‪ Button‬وأداة المساحه النصيه ‪ TextArea‬بالخصائص‬
‫التالية ‪- :‬‬
‫‪ o‬سمي خاصية الزر ‪ Button1‬بـ (اضغط إلدراج قيم ) ‪.‬‬

‫اضافة حدث زر األمــر ‪:‬‬


‫‪ -1‬وأن في النموذج انقر نقرا مزدوجا على الزر (اضغط إلدراج قيم)‬

‫‪ -2‬أضف شفرة الكود كما يلي ‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 97 -‬‬ ‫‪[email protected]‬‬
‫‪ -3‬عند تنفيذ البرنامج يعرض التكرار …‪ for‬اسطـر في مساحه النص كما‬
‫هو مبين ‪:‬‬

‫مالحظــات ‪:‬‬
‫تستخدم العالمة ‪ +‬لدمج الرقم مع ما بداخل مساحه النص‬ ‫‪o‬‬
‫‪. TextArea1‬‬
‫وجود الشفرة " ‪ " \n‬تكافئ النقر على زر اإلدخال ‪. Enter‬‬ ‫‪o‬‬
‫يمكننا التحكم في بداية التكرار وكذلي في نهايته ‪.‬‬ ‫‪o‬‬
‫يمكننا ايضا ً التـحكم في مقدار الزيادة في التكرار كما يلي ‪:‬‬ ‫‪o‬‬

‫)‪for ( int i=20 ; i<=50 ; i= i + 5‬‬

‫هنا سيبدأ التكرار بالقيمة ‪ 20‬ثم ‪ 25‬ثم ‪ 30‬وهــكذا الى أن يصل ‪50‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 98 -‬‬ ‫‪[email protected]‬‬
‫حاالت قد نحتاجها ‪-:‬‬
‫‪)1‬‬

‫‪)2‬‬

‫تدريب ‪:‬‬

‫قم بتنفيذ البرنامج السابق ليبدأ التكرار من ‪ 100‬الى أن يصــــــل إلى ‪ ( 50‬أي‬
‫بنقصان مقداره سالب ‪ ) 1‬سيصبح الكود كما هو مبين ‪:‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 99 -‬‬ ‫‪[email protected]‬‬
‫; ‪int number‬‬
‫)‪for ( int number = 100; number >= 50; number=number-1‬‬
‫{‬
‫;) "‪jTextArea1.append( number + "\n‬‬
‫}‬

‫أو بطريقه أخرى ‪-:‬‬

‫; ‪int number‬‬
‫) ‪for ( int number = 100; number >= 50; number --‬‬
‫{‬
‫"‪jTextArea1.append( number + "\n‬‬ ‫;)‬
‫}‬

‫أو بطريقه أيضا أخرى ‪-:‬‬

‫; ‪int number‬‬
‫)‪for ( int number = 100; number >= 50; number - = 1‬‬
‫{‬
‫;) "‪jTextArea1.append( number + "\n‬‬
‫}‬

‫التكـــــــــــرار باستخـــــــــدام ‪Do while and while‬‬


‫يمكننا استعمال نوعا آخر من التكرار باستخدام جملة ‪ Do‬أي أفعل والشكل‬
‫البنائي لجملة " افعل_‪ " Do‬يبينها المشهد التالي ‪:‬‬

‫{ ‪Do‬‬
‫صيغ يتم تكرارها ‪//‬‬
‫; ) الشرط ( ‪}while‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 100 -‬‬ ‫‪[email protected]‬‬
‫فأحيانا من غير الممكن معرفة عدد مرات التكرار لذا نستخدم التكرار باستعمال‬
‫‪ Do‬وقد نريد السماا لمدخل البيانات بادخال أسماء الموظفين في قاعدة بيانات‬
‫الى ان يكتب رمزا معينا او كلمه محدد فيتوقف االدخال لذا نستخدم التكرار بــ"‬
‫افعل مادام_‪." Do‬‬

‫مثال ‪- :‬‬
‫يبين المثال التالي استخدام التكرار بــ‪ Do‬لتسمح بالتفاعل مع المستخدم إلدخال‬
‫األسماء في مساحه النص ‪ TextArea1‬الى أن يكتب العدد ‪ 999‬في هذا‬
‫المربع‬

‫الحظ =‬
‫الجملة الشرطية ) ‪ while ( i2 != 999‬تعني أقرا االدخال طالما المتغير‬
‫‪ i2‬ال يساوي ‪. 999‬‬
‫يوجد بناء آخر لجملة التكرار وذلي باستخدام ‪ while‬انظر الشكل التالي ‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 101 -‬‬ ‫‪[email protected]‬‬
‫حاالت قد نحتاجها ‪-:‬‬
‫‪)1‬‬

‫‪)2‬‬

‫مثال =‬
‫قم باعداد مشروع عمل الظهار رسالة تطلب مني ادخال درجه حراره‬
‫بالفهرنهاي ويقوم البرنامج بحساع وتحويل القيمه الى درجة حراره مئويه ‪.‬‬
‫تبعا للمعادلة ‪:‬‬
‫‪NewTemp = ( FTemp – 32 ) * 5 / 9‬‬
‫‪ -1‬قم بتشغيل المنصة "‪ "NetBeans‬واختر الجافا للبرمجه كما تعلم مع‬
‫تحديد نوع التطبيق بــ‪. Java Application‬‬
‫‪ -2‬سمي المشروع بــ( ‪. ) Temperature‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 102 -‬‬ ‫‪[email protected]‬‬
‫‪ -3‬أضف اطار عمل جديد وسمه ( ‪ ) temp‬الح ظهور نموذج فارغ‬
‫سنضيف الكود الى االجراء الحدثي لكي تدخل درجه الفهرنهاي ويقوم‬
‫بحساع وتحويل القيمة الى درجة حرارة مئوية تبعا للمعادلة‬

‫‪NewTemp = ( FTemp – 32 ) * 5 / 9‬‬

‫أوال = تصميم نموذج التطبيق‬


‫قم بتصميم النموذج كما تعلم وليكن النموذج ليس به كائنات لهذا انتبه‬
‫لإلجراء الحدثي التالي سيتم تشغيله عند فتح االطار ‪.‬‬

‫ثانيا = اضافة االجراء الحدثي‬


‫‪ -1‬وأن في النموذج انقر بالزر االيمن للفأره ثم اختر احداث ثم نافذه ثم نافذه‬
‫مفعله ‪:‬‬
‫‪Evenets  Window  windowOpened‬‬

‫كما في الشكل ‪- :‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 103 -‬‬ ‫‪[email protected]‬‬
‫‪ -2‬أضف شفرة الكود كما يلي ‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 104 -‬‬ ‫‪[email protected]‬‬
‫الح أن =‬
‫تستخدم الوظيفة ‪ showInputDialog‬الستدعاء نافذة ادخال لقراءة الدرجة وحفظها‬
‫في متغير ‪ feh‬مع تحديد عنوانها بـ ـ‪. Fahrenheit to Celsius‬‬

‫تستخدم الوظيفة ‪ showInputDialog‬الستدعاء نافذة اخراج الظهار درجة الحرارة‬


‫المخزنة في متغير ‪ cel‬وتحديد عنوان لها ‪. Temperature in Celsius‬‬

‫‪ -3‬قم بحف كل التعديالت باداة الحف الموجوده على شريط االدوات ‪.‬‬
‫‪ -4‬انقر زر التشغيل البرنامج من على شريط االدوات والح المشهد التالي ‪:‬‬

‫‪ -5‬تذكر وظيفة الدالة ‪ showInputDialog‬للسماا لي بقراءة المدخالت فقم‬


‫بكتابة ‪ 212‬كدرجه حراره بالفهرنهاي ثم اضغط على زر االدخال الح‬
‫ظهور درجة الحرارة المئوية ( ناتج التحويل = ‪ ) 100‬انظر المشهد التالي ‪:‬‬

‫‪ -6‬انقر بعدها زر الموافقه ‪.‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 105 -‬‬ ‫‪[email protected]‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 106 -‬‬ ‫‪[email protected]‬‬
‫الصفــــائف (المصفوفـــات)‬
‫‪Arrays‬‬

‫مصفوفات البعــــد الواحــــــــــــد‬


‫‪One-Dimensional Arrays‬‬
‫سوف يتم التطرق للمصفوفات ذات البعد الواحد حيث سنقوم بشرا‬
‫كيفية تعريف المصفوفات وحجز مواقع لها مع توضيح كيفية إعطاء‬
‫القيم اإلبتدائية للمصفوفات عند تعريفها كما سنقوم بشرا عمليات‬
‫ترتيب عناصر المصفوفات ‪.‬‬
‫المصفوفات ‪:‬عبارة عن مواقع يتم تخزين البيانات فيها لمدة مخقتة‬
‫(طيلة فترة تنفيذ البرنامج فقط) وعند تعريف المصفوفه وإنشائها يتم‬
‫حجز عدد محدد من المواقع المتجاوره في الذاكره لتخزين البيانات‬
‫فيها‪ .‬حيث يتم الوصول للبيانات المخزنه في هذه المواقع عن طريق‬
‫اسم المصفوفه ورقم الموقع (‪ .)Index‬والغاية من استخدام‬
‫المصفوفات هي تخزين عدد غير محدد من القيم تح اسم واحد فقط‬
‫(اسم المصفوفه) دون الحاجه إلى تخزين كل قيمة في متغير‬
‫(‪ )Variable‬منفصل ‪.‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 107 -‬‬ ‫‪[email protected]‬‬
‫إلستخدام المصفوفات في البرنامج ال بد من تعريفها وحجز المواقع‬
‫لها حيث يتم ذلي كما يلي ‪:‬‬

‫; ] [ ‪int array‬‬
‫; ] ‪array [ ] = new int [ 9‬‬
‫في السطر رقم (‪ )1‬تم تعريف المصفوفه ‪ array1‬من نوع ‪ int‬أي‬
‫أننا نستطيع تخزين أعداد من نوع ‪ int‬في هذه المصفوفه بينما في‬
‫السطر رقم (‪ )2‬تم حجز ‪ 9‬مواقع لهذه المصفوفه (من الموقع رقم‬
‫صفر إلى الموقع رقم ثمانيه) لنستطيع تخزين ‪ 9‬أعداد صحيحه على‬
‫األكثر في هذه المصفوفه كما يمكن دمج الجملتين السابقتين بجملة‬
‫واحده لتصبح كما يلي ‪:‬‬
‫;] ‪int array[ ] = new int [ 9‬‬
‫ويمكن كتابة الجملة السابقة بالشكل التالي ‪:‬‬
‫;] ‪int [ ] array= new int [ 9‬‬
‫في لغة الجافا رقم موقع العنصر في المصفوفه يكتب بين أقواس‬
‫مربعه بعد أسم المصفوفه (مثال ‪ )Array [ number ] :‬حيث أن‬
‫‪ number‬يمثل رقم الموقع في المصفوفة وفي مثالنا السابق هو عدد‬
‫محصور بين الصفر والثمانية‪ .‬وبشكل عام عند حجز ‪ number‬من‬
‫المواقع للمصفوفة فءن أرقام هذه المواقع تكون من صفر ولغاية‬
‫(‪.)number - 1‬‬
‫نستطيع وبشكل أختياري أن نحدد للمصفوفة قيما ً ابتدائية يتم تحديدها‬
‫عند تعريف المصفوفة وإذا لم نحدد للمصفوفة قيما ً ابتدائية فءنه يتم‬
‫تخزين القيمة التلقائية (‪ )Default Value‬لنوع المصفوفة وذلي عند‬
‫حجز المواقع لها ‪ .‬والقيم التلقائية لونواع هي كما يلي ‪:‬‬
‫‪int, byte, short, long  0‬‬
‫‪double, float‬‬ ‫‪ 0.0‬‬
‫‪char‬‬ ‫‪ \u0000Space‬‬
‫‪String‬‬ ‫‪ null‬‬
‫‪Boolean‬‬ ‫‪ false‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 108 -‬‬ ‫‪[email protected]‬‬
‫ماذا يحدث داخل ذاكرة الجهاز؟‬

‫يمكن تحديد القيم اإلبتدائية للمصفوفه بالطريقه التاليه ‪:‬‬


‫;}‪int ages[ ]= {20, 18, 34, 42, 28‬‬
‫من خالل هذه الجملة قمنا بتعريف مصفوفة اسمها ‪ ages‬وخزنا فيها‬
‫قيما ً إبتدائية حيث سيتم حجز مواقع على عدد هذه القيم اإلبتدائية ‪.‬‬
‫الشكل التالي يوضح عملية التخزين‬

‫وللوصول للرقم ‪ 42‬في المصفوفة ‪ ages‬يجب إستخدام الشكل التالي‬


‫]‪ ages[3‬حيث نستطيع طباعة الرقم ‪ 42‬عن طريق الجملة التاليه‬
‫‪:‬‬
‫; ) ] ‪System.out.println ( ages [ 3‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 109 -‬‬ ‫‪[email protected]‬‬
‫ولتعديل القيمة المخزنة في الموقع رقم ‪ 1‬لتصبح ‪ 53‬عوضا ًعن ‪18‬‬
‫يجب تنفيذ الجملة التالية ‪:‬‬
‫; ‪ages[ 1 ] = 53‬‬

‫مالحظات مهمة ‪-:‬‬


‫دائما ً يجب أن يكون رقم الموقع (‪)Index‬عند التعامل مع المصفوفه‬
‫عددا ً صحيحا ً موجبا ً ‪.‬‬
‫يجب أن ال يتجاوز عدد المواقع المحجوزة للمصفوفة عند استخدامها‬
‫إذا لم نحدد قيما ً إبتدائيه للمصفوفة فيجب أن نستخدم الكلمة المحجوزة‬
‫(‪ )new‬لحجز مواقع للمصفوفة كما ذكر سابقا ً ‪.‬‬
‫إذا لم تعطى المصفوفة قيما ً ابتدائية عند تعريفها فءنها تأخذ القيم‬
‫التلقائية (‪ )Default Values‬كقيم إبتدائيه وذلي حسب النوع‬
‫(‪ )Type‬الذي حدد للمصفوفة كما ذكر سابقا ً أيضا ً ‪.‬‬
‫نستطيع معرفة عدد المواقع المحجوزة للمصفوفة من خالل كتابة أسم‬
‫المصفوفة ثم نقطه متبوعا ً بكلمة (‪ )Length‬ومن خالل هذه الجملة‬
‫نستطيع معرفة عدد المواقع المحجوزة للمصفوفة مثالً ‪Array‬‬
‫كالتالي‪:‬‬
‫‪Array. Length‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 110 -‬‬ ‫‪[email protected]‬‬
‫نستطيع إستخدام أحد األشكال التاليه لتعريف وحجز مواقع المصفوفه‪:‬‬

‫;]‪1) int array[ ] = new int[5‬‬


‫;] [‪2) int array‬‬
‫;]‪array =new int [5‬‬
‫;]‪3) int [ ]array = new int [5‬‬
‫;‪4) int [ ]array‬‬
‫;]‪array =new int[5‬‬

‫نستطيع أستخدام أحد األشكال التاليه لتخزين القيم االبتدائيه في‬


‫المصفوفه ‪:‬‬
‫; }‪int array [ ]= {5,3,8,9,2‬‬
‫; }‪int array [ ]= new int {5,3,8,9 2‬‬
‫مصفوفات متعــــددة األبعــــــــــــاد‬
‫‪Multi-Dimensional Arrays‬‬
‫في لغة الجافا يمكن تعريف مصفوفات ذات أكثر من بعد واحد‬
‫وكمثال على ذلي ‪ :‬تعريف المصفوفات ذات البعدين ‪ .‬ونستطيع القول‬
‫بأن المصفوفة ذات البعدين هي عبارة عن جدول يحتوي على صفوف‬
‫وأعمده أنظر هذا الشكل ‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 111 -‬‬ ‫‪[email protected]‬‬
‫والمثال التالي يوضح كيفية تعريف مصفوفة ذات بعدين وحجز مواقع‬
‫لها ‪:‬‬
‫;] [] [‪1. int b‬‬
‫;] ‪2. b = new int [ 3 ][ 4‬‬
‫في السطر األول تم تعريف مصفوفة جديدة ذات بعدين أسمها ‪ b‬وفي‬
‫السطر الثاني تم حجز مواقع لها بحيث تحتوي على ثالثه صفوف‬
‫وكل صف يحتوي على أربعه أعمده ‪.‬‬
‫المثال التالي يوضح كيفية تعريف مصفوفة ذات بعدين وإعطاء قيما ً‬
‫ابتدائيه ‪:‬‬
‫;} } ‪int b [ ] [ ] ={ { 1,2 } , { 3,4‬‬
‫في هذا المثال تم تخزين العدد ‪ 1‬في المصفوفة ‪ b‬في الموقع الموجود‬
‫في تقاطع الصف األول والعمود األول والعدد ‪ 2‬في تقاطع الصف‬
‫األول والعمود الثاني ‪ .‬وبمعنى آخر تحتوي هذه المصفوفة على‬
‫صفين كل صف يحتوي على عنصرين والشكل التالي يبين‬
‫محتويات المصفوفة ‪ b‬بعد تنفيذ الجملة السابقة ‪:‬‬

‫ويمكن لصفوف المصفوفة أن تحتوي على عدد مختلف من األعمدة‬


‫بمعنى أن الصف األول يحتوي على ثالثة أعمده والصف الثاني‬
‫يحتوي على عمودين فقط كما في المثال التالي ‪:‬‬
‫;} } ‪int c[ ][ ] = { { 1, 2, 3}, { 4, 5‬‬
‫والشكل التالي يبين محتوى المصفوفة ‪: c‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 112 -‬‬ ‫‪[email protected]‬‬
‫المثال التالي يبين عملية تعريف مصفوفة وحجز مواقع لها بحيث‬
‫يحتوي كل صف من صفوف هذه المصفوفة على عدد مختلف من‬
‫األعمدة ‪:‬‬
‫;] [] [‪1. int a‬‬
‫‪2. a = new int[ 2 ][ ]; // allocate rows‬‬
‫‪3. a[ 0 ] = new int[ 5 ]; // allocate row 0‬‬
‫‪4. a[ 1 ] = new int[ 3 ]; // allocate row 1‬‬
‫في السطر رقم ‪ 1‬تم تعريف مصفوفة اسمها ‪ a‬وفي السطر ‪ 2‬تم حجز‬
‫صفين لهذه المصفوفة بينما في السطر رقم ‪ 3‬تم حجز خمسة أعمده‬
‫للصف األول ومن خالل السطر ‪ 4‬تم حجز ثالثة أعمده للصف الثاني‬
‫‪ .‬والشكل التالي يوضح المصفوفة ‪: a‬‬

‫تمرين ‪ /‬اكتب برنامج بالجافا يطلب من المستخدم ادخال عدد محدد‬


‫(بين ‪ 1‬والـ ‪ )100‬ثم يقوم بعد ذلي بادخال أعداد بعدد مرات العدد‬
‫الذي تم ادخاله أول مره (هذه األعداد يجب أن تكون بين ‪ 1‬و ‪)10‬‬
‫بعد ذلي يقوم البرنامج بعرض أكثر عدد تم تكراره‪.‬‬
‫علي سبيل المثال ‪ /‬لو تم ادخال العدد ‪( 15‬حيث ‪ 15‬بين ‪ 1‬و ‪)100‬‬
‫يجب على المستخدم ادخال ‪ 15‬عدد بحيث تكون جميع هذه األعداد‬
‫محصورة بين ‪ 1‬و ‪ 10‬بعد ذلي يقوم البرنامج بعرض أكثر عدد تم‬
‫ادراجه‪.‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 113 -‬‬ ‫‪[email protected]‬‬
‫الوحــــــــــــــدة السابعه‬
‫بناء التطـبـيــــــــــــــقات‬

‫أسلوب التعامل مع ملفات الصور‬


‫من خالل البرمجة الموجـهـة الشيئية‬
‫‪Object Oriented Programming‬‬

‫البرمجة الشيئية أو الموجهة بالكائناات هاي طريقاة لعمال التطبيقاات المتقدماة‬


‫والمعقدة بطريقه أكثر يسرا وكفاءة وفيها يتكون البرنامج من مجموعاة مان الفئاات‬
‫‪ Classes‬وكل فئة يمكن إنشاء كائن أو كائنات ‪ Objects‬داخل هذه الفئة ‪ .‬وتستخدم‬
‫الكائنات مجموعة من الطرق والوظائف للتشغيل‪ .‬لذا فان الكاائن يتكاون مان تركياب‬
‫معااين ماان البيانااات التااي يااتم التعاماال معهااا فقااط ماان خااالل اإلجااراءات أو الباارامج‬
‫الفرعية ‪.‬‬

‫في هذا المثال سنقوم بادراج صوره في ‪ Label‬باستخدام زر ‪ Button‬حيث‬


‫يتطل ب انجاز التصميم ثم الخصائص وبعد ذلي كتابة الكود‪.‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 114 -‬‬ ‫‪[email protected]‬‬
‫مرحلة التصميم وضبط الخصائص‪:‬‬
‫‪-5‬‬
‫قم بتشغيل المنصة كما تعلم ‪.‬‬
‫‪-6‬‬
‫سمي المشروع ثم قام بتصاميم واجهاة التطبياق مان زر تحكام ‪ Button‬وقام‬
‫بتسميته (اضغط الدراج صوره) وقم بءضافة ملصاق ‪ Label‬ثام قام بمساح‬
‫اسم هذا الـ‪ Label‬واتركه فارغ هذا الالصق خا بادراج صوره‬

‫مرحـــلة كتـــابة الكـــود‪:‬‬


‫أوال‪ :‬سنتعامل مع البرمجة الشيئية من خالل هذا المثال وذلاي بنشااء كاائن جدياد‬
‫وليكن اسمه ‪ ic‬من نوع صوره أيقونيه ‪ImageIcon‬‬

‫حيث ‪ ImageIcon‬األولى عبارة عن اسم الفئة التي نريد اشاتقاق جمياع الطارق‬
‫التي تحتويها ووضع نسخ منها داخل هذا الكائن الجديد المسمى ‪ic‬‬
‫بعااد ذلااي يقااوم البرنااامج بمحاكاااة الباااني (‪ ) Constructor‬الخااا بهااذه الفئ اة‬
‫والمسمى بنفس االسم )(‪ImageIcon‬‬
‫بعد ذلي نقوم بكتابة امتداد الصوره التي نرغب بادراجها كما يلي‬

‫ثم نقوم بادراج هذا الكائن الجديد داخل خاصية األيقونة في الـ ‪ Label‬الجديد‪ .‬ليصبح‬
‫الشكل كما يلي ‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 115 -‬‬ ‫‪[email protected]‬‬
‫مثال آخــــــــــــــر ‪-:‬‬
‫نرياد تصااميم برنااامج يقااوم باختيااار متعاادد لمجموعاه مان الصااور ماان خااالل قائمااة تحااوي‬
‫اسماء الختيارات من الصور المتعددة كما يلي ‪-:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 116 -‬‬ ‫‪[email protected]‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 117 -‬‬ ‫‪[email protected]‬‬
‫إنشاء ارتباط باالنترنت أو البرامج‬
‫وتتاايح أيضااا‬ ‫تتاايح لنااا الجافااا اساالوع لعماال ارتباااط بمواق اع فااي شاابكة االنترن ا‬
‫امكانية تشغيل برامج وتطبيقات من النموذج التطبيقي ‪.‬‬
‫‪-1‬‬
‫قم بانشاء مشروع جديد باسم ‪. Web Link‬‬
‫‪-2‬‬
‫صمم نموذج التصميم كما في الشكل ‪-:‬‬

‫‪-3‬‬
‫قم باضافة عدد أربعه ‪ Label‬وحدد خاصية اثنان منهما بـ(اضغط هنا)‪.‬‬
‫‪-4‬‬
‫قم بتسمية الثالث بـ(لالنتقال الى محرك البحث) والرابع بـ(لفتح صوره موجودة‬
‫في جهازك)‪.‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 118 -‬‬ ‫‪[email protected]‬‬
‫‪ -5‬انقر عند االرتباط اضغــط هنـــــــــــا لالنتقال الى محرك البحث‬
‫‪-6‬‬
‫اكتب الكود التالي ‪- :‬‬

‫‪-7‬‬
‫اكتب الكود التالي ‪-:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 119 -‬‬ ‫‪[email protected]‬‬
‫الوحدة الثامنه‬
‫العمل مع مجموعه البيانات‬

‫العمل مع مجموعه البيانات‬

‫تقدم لغة الجافا وسيله تقنيه رائعة للتعامال ماع قواعاد البياناات هاذه‬
‫الوسيلة تسمى بـ ‪ JDBC‬وهي اختصار‬
‫‪ Java Data Base Connectivity‬أي االتصااال بقاعاادة‬
‫البيانات من خالل الجافا ‪.‬‬

‫و هي عبارة عن مجموعة من الـ‬


‫) ‪ Application Programming Interface ( API‬و هاذه الاـ‬
‫‪ API‬تقوم باالتصال بأي قاعدة بيانات و تطباق عليهاا لغاة االساتعالم‬
‫( ‪ Structure Query Language ) SQL‬وتعني لغاة االساتعالم‬
‫الهيكلية و في ما يلي الخطوات االساسيه و المتسلسلة حتى نستخدم الاـ‬
‫‪: JDBC‬‬
‫أوال ‪ :‬كتابة أمر مانع حدوث األخطاء واكتشافها (‪)try … catch‬‬
‫وتعني ‪(:‬حاول التالي واصطد األخطاء في حاله وجودها)‬
‫حيث يجب كتابه جميع خطوات المراحل الس داخل قوسي‬
‫مجموعه مسبوقة بكلمة ‪ try‬وتعني ( حاول أو محاوله ) وكلمة‬
‫‪ catch‬خاصة باصطياد األخطاء في حاله ظهورها أثناء المرور‬
‫بجميع المراحل الخمس كما يلي ‪-:‬‬
‫{‪try‬‬
‫المراحل الخمس ‪//‬‬
‫}‬
‫{) ‪catch( Exception e‬‬
‫رسالة تستوضح نوع الخطأ ومكانه وسبب ظهوره ‪//‬‬
‫}‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 120 -‬‬ ‫‪[email protected]‬‬
‫تضمين الحزمة الخاصة بتحميل فئات التعامل مع قواعد البيانات‬
‫التي تندرج تحت حزمة ‪ sql‬وذلك عن طريق استدعائها داخل‬
‫البرنامج‬

‫حيث عالمة النجمة تعني قيام البرنامج باساتدعاء وتحميال جمياع فئاات‬
‫األوامر الخاصة بهذه المكتبة والتي تشمل االتصاال والمحار والتعبيار‬
‫االستعالمي و مجموعة النتائج ‪-:‬‬

‫ثانيا ‪ :‬تحميل محر الـ ‪ JDBC‬المناسب‬


‫وهنا يجب العلم بان هنالي مجموعات مختلفة من محركات قواعاد البياناات كال‬
‫نوع من هذه المحركات لها محرك ‪ driver‬خا بها يتناساب معهاا لكاي تتصال‬
‫بشااكل صااحيح مااع ‪ JDBC‬فااي الجاف اا‪ .‬و طريقااة تحمياال المحاار تكااون عاان‬
‫طريق الفئة متبوعة بنقطه ثام الطريقاة ‪ forName‬فماثال لتحميال محارك الاربط‬
‫مع قاعدة بيانات من نوع ‪ MySql‬فتكون كالتالي ‪-:‬‬

‫;)"‪Class.forName("com.mysql.jdbc.Driver‬‬

‫بقاعاااادة بيانااااات ماااان نااااوع‬ ‫أمااااا اذا أردنااااا أن نحماااال محاااارك خااااا‬
‫‪ SqlServer‬فتكون كالتالي ‪-:‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 121 -‬‬ ‫‪[email protected]‬‬
‫;)"‪Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver‬‬

‫بقاعادة بياناات مان ناوع ‪Oracle‬‬ ‫أما اذا أردنا أن نحمل محرك خاا‬
‫فتكون كالتالي ‪-:‬‬

‫;)"‪Class.forName("oracle.jdbc.driver.OracleDriver‬‬

‫أمااااا اذا أردنااااا أن نحماااال محاااارك خااااا بقاعاااادة بيانااااات ماااان نااااوع‬
‫مايكروسوف آكسس )‪ ) Microsoft Access‬فتكون كالتالي ‪:‬‬

‫;)"‪Class.forName("sun.jdbc.odbc.JdbcOdbcDriver‬‬

‫الموجود بالخط العريض داخل عالمتي التنصيص في األقواس هو اسم ‪class‬‬


‫موجااود داخاال حزمااه معرفااه مساابقا لاادى الجافااا حيااث ساايتعرف الجافااا علااى‬
‫محاار قاعاادة البيانااات ماان خااالل هااذه الحزمااة وبااذلي تعتباار هااذه الحزمااة هااي‬
‫البوابة االساسيه والرئيسة للربط مع محرك قاعدة البيانات‪.‬‬
‫ثالثا ‪ :‬قناة االتصال وهي الر بط مع قاعدة البيانات‬
‫وهذه مرحله ما بعد الاربط ماع محار قاعادة البياناات وبشاكل عاام‬
‫تكون على هذه الصيغة ‪:‬‬
‫=‪Connection conn‬‬
‫; ) "نوع قاعدة البيانات" ( ‪DriverManager.getConnection‬‬

‫وال ننسااى تحمياال تحمياال المحاارك فعليااا ووضااع نسااخه منااه فااي مجلااد‬
‫المكتبات الخا بالمشروع‪.‬‬
‫فمثال ‪-:Mysql‬‬

‫= ‪Connection conn‬‬
‫‪DriverManager.getConnection‬‬
‫;)"‪("jdbc:mysql://localhost:3306/myDatabase?","root","1234‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 122 -‬‬ ‫‪[email protected]‬‬
-:SqlServer ‫أو مثال‬

Connection conn =
DriverManager.getConnection
("jdbc:sqlserver://localhost\\myDatabase;user=hatem;password
=1234");

-:Oracle ‫أو مثال‬

Connection conn =
DriverManager.getConnection
("jdbc:oracle:thin:@localhost:1521:MyDatabase","scott",
"tiger");

-:MSDB Access ‫أو مثال‬

Connection conn =
DriverManager.getConnection ("jdbc:ucanaccess://D://
mydata.db ");

‫ المهنـدس حـــاتم آل هتيــــله‬/ ‫ تقنية المعلومات وبرمجة الويب‬/ ‫الكليـــة التقنيـــــة بنجــــران‬
- 123 - ‫صفحة‬ [email protected]
‫لكن يجب علينا تنزيال مكاتاب الاـ( ‪ ) ucanaccess‬مان ضامن مكتباة‬
‫المشروع تح اسم ‪ Libraries‬كما هو واضح بالشكل السابق‪.‬‬

‫وهنالااك طريقااة أخاارى للااربط مااع قواعااد بيانااات ‪MS Access‬‬


‫‪-:Database‬‬
‫= ‪Connection conn‬‬
‫= ‪DriverManager.getConnection ( " jdbc : odbc : Driver‬‬
‫;)"‪{Microsoft Access Driver (*.mdb)}; DBQ=D://mydata.db‬‬

‫في مثالنا الحالي عبارة عن مايكروسوف أكسس ‪ACCES‬‬


‫مثال ‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 124 -‬‬ ‫‪[email protected]‬‬
‫بقاعادة البياناات ‪ ACCESS‬يجاب‬ ‫وحتى ياتم تفعيال ‪ ODBC‬الخاا‬
‫عليي الذهاع الى لوحه التحكم ‪:‬‬

‫ثم اختر أدوات اداربه بعد ذلي اختر مصادر البيانات ‪ODBC‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 125 -‬‬ ‫‪[email protected]‬‬
‫ثم تتبع الخطوات ‪ 1‬و‪ 2‬و ‪ 3‬كما يلي ‪:‬‬

‫هااذا فااي حالااه الااربط مااع قواعااد البيانااات مايكروسااوف أكسااس‪( .‬وفااي‬
‫حاااال الاااربط ماااع قاعااادة بياناااات ‪ Oracle‬أو ‪ Mysql‬أو غيرهاااا باسااام‬
‫مستخدم ورقم سري أو بدونها انظر الملحق)‪.‬‬
‫رابعا‪ :‬تحديد أمر االستعالم‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 126 -‬‬ ‫‪[email protected]‬‬
‫خامسا‪ :‬تنفيذ أمر االستعالم‬

‫في هذه الحالة تم كتابة أمر نصي ووضعه داخل متغير نصي اسمه‬
‫‪ s‬ثم بعد ذلي واعتمادا على صالحيات الكائن المسمى ‪ st‬لتنفيذ‬
‫االستعالم سيتم تخزين جميع بيانات االستعالم داخل مجموعه‬
‫النتائج المسماة ‪ rs‬وتكون على شكل مصفوفة ذات بعدين (جدول‬
‫ذا صفوف وأعمده)‪.‬‬
‫سادسا‪ :‬جلب وعرض البيانات والمعلومات‬
‫كما علمنا بان جميع البيانات أو المعلومات سيتم حصرها في‬
‫مجموعه النتائج ‪ rs‬وبذلي نستطيع عرض وتعديل وحذف‬
‫وأضافه بيانات أو معلومات بشكل سلس كما سنرى ‪.‬‬
‫وغالبا يتم استخدام (مادام ‪ ) while‬أو ‪ if‬الشرطية للــ ‪ rs‬متبوعة‬
‫بنقطه ثم كلمة التالي ‪ next‬للداللة على وجود سطر (سجل كامل)‬
‫ليتم سرده أو للداللة على االستمرار كما يلي‪:‬‬

‫سابعا‪ :‬مسح واغالق (مجمع النتائج ‪ ) rs‬و (أمر االستعالم ‪ ) st‬و‬


‫(قناة االتصال ‪)conn‬‬

‫وذلي للمحافظة على قاعدة البيانات وزيادة في األمن‪.‬‬


‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 127 -‬‬ ‫‪[email protected]‬‬
‫الخالصة ‪- :‬‬
‫في حاله كتابه البرنامج كما تم سابقا سيصبح شكل الكود مشابه لما‬
‫يلي ‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 128 -‬‬ ‫‪[email protected]‬‬
‫تمرين ‪-:‬‬
‫اكتب برنامج مصغر بالجافا يقوم بادراه مجموعه بيانات (مثال ‪:‬‬
‫األكسس ) بتصميم مناسب ‪.‬‬
‫لالجابه على التمرين يجب انشاء قاعدة بيانات وليكن اسمها ‪HAT‬‬
‫تحتوي على األقل على جدول واحد اسمه ‪ Info‬يحوي بداخله على‬
‫مجموعه من البيانات‪.‬‬

‫انشأ مشروع جديد بالن بينز كما علم سابقا ثم أنشا اطار عمل‬
‫جديد بحيث يصبح مقارع للتالي ‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 129 -‬‬ ‫‪[email protected]‬‬
‫قاام بتصااميم نمااوذج العاارض الااذي يناسااب مااع عاارض بيانااات الجاادول‬
‫وذلاااي بءضاااافة مجموعاااه مااان األدوات ولااايكن سااابعه حقاااول نصااايه‬
‫‪ TextField‬وساابعه أشاارطه ‪ Label‬وزرياان ‪ Button‬وقاام بتخيياار‬
‫خصائص جميع األدوات لتصبح مشابهه للشكل التالي ‪-:‬‬

‫لقد انتهي من تصميم الواجهة ويتبقى لي برمجه التطبيق ‪.‬‬


‫انقر بالزر األيمن للفأرة على زر تحميل البيانات اختر ‪:‬‬
‫]‪Event Mouse mouse Clicked [ jButton1MouseClicked‬‬

‫ستظهر الشفرة البرمجية التي نرغب بكتابه الكود البرمجي بداخلها كما‬
‫الشكل التالي ‪-:‬‬

‫نقوم بوضع المخشر في الوسط ثم نقول بالنزول سطر جديد لكي نبدأ‬
‫كتابة الكود‪.‬‬

‫أضف شفره الكود التالي ‪:‬‬


‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 130 -‬‬ ‫‪[email protected]‬‬
‫هذه عبارة ( حاول التالي وقم بصيادة األخطاء في حاله وجودها ) كما‬
‫علمنا مسبقا يجب كتابتها كما هو موضح‪.‬‬
‫بداخل العبارة ‪ try‬يوجد قوسي مجموعه قم بكتابة الكود البرمجي‬
‫بداخل هذين القوسين ‪-:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 131 -‬‬ ‫‪[email protected]‬‬
‫الى هذه المرحلة سيكون االتصال صحيح بدون أي مشكله عند‬
‫الضغط على الزر (تحميل البيانات) وسيظهر الشكل العام كما يلي ‪-:‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 132 -‬‬ ‫‪[email protected]‬‬
‫الح أن هنالي عبارة ( االتصال تم ) تظهر في رسالة اخراج ‪:‬‬

‫;)"االتصال تم " ‪JOptionPane.showMessageDialog(null,‬‬

‫والتي تفيد بان االتصال مع قاعدة البيانات تم بشكل صحيح وبذلي‬


‫تستطيع تكملة العمل الن االتصال تم لكن بدون سرد أي بيانات داخل‬
‫الحقول‪.‬‬

‫اآلن نبدأ بسرد وتمكين البيانات في الحقول واحد تلو اآلخر ومبدئيا‬
‫سنختار الحقل الخا بالرقم األكاديمي بحيث سيتم أضافه هذا‬
‫السطر‪-:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 133 -‬‬ ‫‪[email protected]‬‬
‫والذي يقوم بتعبئة الحقل الخا بالرقم األكاديمي بالبيانات الموجودة‬
‫في الجدول المسمى (‪ )Info‬داخل قاعدة البيانات المسماة ‪HAT‬‬
‫حيث سيتم كتابة هذا السطر داخل ‪ if‬الشرطية كما هو موضح ‪-:‬‬

‫حيث سيصبح الناتج كالتالي ‪-:‬‬

‫وبذلي تم عرض حقل واحد فقط يقرأ من قاعدة البيانات وتحديدا من‬
‫الحقل ‪ theIDentity‬الموجود داخل جدول ‪. info‬‬
‫ولعرض وتعبئة باقي الحقول بالسجل كامال يجب علينا تكرار نفس‬
‫العملية مع تغيير اسم الحقل الموجود داخل الجدول باسم الحقل المقبل‬
‫له المراد عرض البيانات فيه الموجود في اطار ‪ Frame‬العرض‬
‫الحالي ‪-:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 134 -‬‬ ‫‪[email protected]‬‬
‫انقر زر األمر (تحميل البيانات) والح المخرجات ‪-:‬‬

‫‪ -1‬الح اني ال تستطيع ان تتصفح بقيه بيانات الجداول ‪.‬‬


‫‪ -2‬التنسى برمجة زر اآلمر إغالق ‪ ,‬بءضافة شفره البرنامج ‪.‬‬

‫إنشاء أدوات التنقل بين السجالت‬


‫حاليااا يعاارض التطبيااق السااجل األول ماان جااداول البيانااات وال يمكننااا‬
‫اساتعراض أو تصافح بقيااه ساجالت مجموعاه البيانااات لاذا كياف يمكننااا‬
‫التنقل علاى ساجالت البياناات لهاذا سانتمرن علاى اضاافة مجموعاه مان‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 135 -‬‬ ‫‪[email protected]‬‬
‫أزره التحكم سنساميها الساجل األول و الساجل األخيار والساجل الساابق‬
‫و والسجل التالي ‪-:‬‬

‫‪ -1‬قم بعرض نموذج التصميم في التطبيق السابق ‪.‬‬


‫‪ -2‬قم باضافه أربعه أزره تمثل السجل األول و السجل األخير والسجل‬
‫السابق و والسجل التالي‪-:‬‬

‫نفذ الملف ثم اضغط على زر تحميل البيانات سيتم تحميل سجل واحد فقط‬
‫وهو عبارة عن السجل األول الموجود في جدول ‪info‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 136 -‬‬ ‫‪[email protected]‬‬
‫لذلي نحتاج لتفعيل كود السجالت التالية وذلي كاآلتي ‪-:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 137 -‬‬ ‫‪[email protected]‬‬
‫‪ -3‬انقر نقرا مزدوجا عند زر التنقل السجل التالي وأضف الكود التالي ‪-:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 138 -‬‬ ‫‪[email protected]‬‬
‫‪ -4‬انقر نقرا مزدوجا عند زر التنقل للسجل السابق وأضف الكود التالي ‪:‬‬

‫‪ -5‬انقر نقرا مزدوجا عند زر التنقل السجل األول وأضف الكود التالي ‪-:‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 139 -‬‬ ‫‪[email protected]‬‬
‫‪ -6‬انقر نقرا مزدوجا عند زر التنقل السجل األخير وأضف الكود التالي‪-:‬‬

‫‪ -7‬قاام بترجمااة وتنفيااذ المشااروع ثاام بااالنقر علااى زر تحمياال البيانااات فااي‬
‫مجموعه البيانات‪-:‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 140 -‬‬ ‫‪[email protected]‬‬
‫‪ -8‬انقر عند الزر السجل األخير لينتقل الى السجل األخير في جدول‬
‫البيانات ‪.‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 141 -‬‬ ‫‪[email protected]‬‬
‫‪ -9‬انقر عند الزر السجل السابق لالنتقال الى السجل السابق ‪.‬‬

‫انقر الزر السجل التالي لالنتقال الى السجل التالي ‪.‬‬ ‫‪-10‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 142 -‬‬ ‫‪[email protected]‬‬
‫قم بالنقر على زر اغالق وذلي اغالق اطار العمل الحالي ‪.‬‬ ‫‪-11‬‬
‫تحديد موقع السجل الحالي عن طريق بناء طريقه جديده‬
‫(‪)Method‬‬
‫أحيانااا نحتاااج آن نعاارف موقااع السااجل الحااالي ماان بااين جميااع السااجالت حيااث‬
‫يمكننا اضافة بيان لتحديد موقع السجل الحالي على النماوذج بوضاع قيماه تحادد‬
‫رقاام السااجل الحااالي فااي مجموعااه البيانااات وقيمااه اخاارى تحاادد عاادد السااجالت‬
‫الكلاي لهاذه المجموعاة لهاذا سانحتاج الجاراء لياتم اظهاار هااتين القيمتاين بعاد‬
‫ذلي سنقوم بانشاء متغير ( عداد ) من نوع عدد صحيح ‪ Counter‬يقوم بقراءة‬
‫عادد السااجالت الموجاودة داخاال هاذا االسااتعالم وذلاي عاان طرياق زيااادة العااداد‬
‫بمقدار واحد في كل عمليه دوران (قراءه) لكامل االستعالم كما يلي ‪-:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 143 -‬‬ ‫‪[email protected]‬‬
‫وفيه سنعرف كم سجل موجود بعد ذلي نقوم بتكملاة الكاود ليسارد لناا رقام الساجل‬
‫الحالي ‪:‬‬
‫;)(‪rs.getRow‬‬

‫حياث ‪ rs‬تعناي مجماع بياناات االساتعالم كاامال و )(‪ getRow‬طريقاه موجاودة‬


‫داخاال صاانف (فئااة) ‪ ResultSet‬التااي تاام انشاااء كااائن جديااد ورث جميااع طاارق‬
‫العمل ومنها طريقة احضار رقم السجل الحالي المسماة )(‪ . getRow‬مثال‪:‬‬

‫;)""‪jLabel8.setText( rs.getRow()+‬‬

‫بذلي سيظهر الكود الكلي مقارع لهذا الشكل ‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 144 -‬‬ ‫‪[email protected]‬‬
‫مالحظه ‪/‬‬
‫لقد قمنا ببناء طريقه جديده وتام تساميتها )(‪ counter‬هاذه الطريقاة مان ناوع‬
‫‪ private‬وتقاوم بءرجااع ال شايء ‪ void‬حياث تقاوم باءجراء المهماة المطلوباة‬
‫منها بدون ان ترجع أي قيمه اثناء الطلب‬
‫بعد ذلي قمنا بوضع الكود داخل هذه الطريقه ‪.‬‬
‫الفائدة من بناء هذه الطريقه‪/‬‬
‫لكااي ال يااتم تكاارار كتابااة البرنااامج أكثاار ماان مااره عناادما نحتاااج تنفيااذه وبااذلي‬
‫نستطيع استدعاء الطريقة التي من خاللها نستطيع تنفيذ البرنامج بكل سهولة‪.‬‬
‫طريقة االستدعاء‪/‬‬
‫يتم كتابة اسم الطريقة فقط في أي موقع داخل البرنامج كما يلي ‪:‬‬
‫; )(‪counter‬‬
‫الح استدعاء الطريقه داخل البرنامج ‪-:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 145 -‬‬ ‫‪[email protected]‬‬
‫بعد ذلي قم بترجمة وتنفيذ المشروع وذلي بالنقر على زر تحميل السجالت فاي‬
‫مجموعه البياناات‪ .‬واساتخدم النقار علاى زر اداه التنقال علاى الساجالت والحا‬
‫بيان موقع السجل ‪ .‬انظر الشاشات التالية ‪-:‬‬

‫وعند التنقل بين السجالت يتم سرد رقم السجل الحالي من ضمن مجموع‬
‫السجالت الكلي ‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 146 -‬‬ ‫‪[email protected]‬‬
‫تعديل واضافة وحذف سجالت والبحث عنها‬
‫نحتاج في كثير من البرامج الدراج وعرض سجالت باالضافه الى تعديلها أو‬
‫حذفها في حالة عدم الحاجة لها أو اضافة سجالت جديدة الى قاعدة البيانات‬
‫ليتم االستفادة منها الحقا‪.‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 147 -‬‬ ‫‪[email protected]‬‬
‫للعلم بأننا نستطيع تعديل البيانات عند عرضها على نموذج اطار العمل ولكن‬
‫ال يتم تخزينها في قواعد البيانات لذلي يجب أن يكون هنالي وسيط بين‬
‫نموذج العمل وقاعدة البيانات هو نظام ادارة قواعد البيانات‬
‫‪ )DBMS( Database Management System‬بالتعامل مع أوامر‬
‫االستعالم الهيكلية ‪. Structure Query Language‬‬

‫أضف مجموعة األدوات الخاصة ليصبح الشكل مقارع لما يلي ‪-:‬‬

‫تعديل السجل الحالي‬


‫أوال يجب أن نحصل على اسم الشيء المراد ربطه برمجيا بهذا الزر أي أننا‬
‫يجب أن نقوم بالحصول على أسماء جميع الحقول النصية المراد برمجتها‬
‫وذلي عن طريق اختيار الحقل النصي كما علم سابقا ثم الضغط بالزر‬
‫األيمن للفأرة فتنسدل لنا قائمه نختار منها خصائص بعد ذلي يظهر لنا‬
‫صندوق حوار اختر عالمة التبويب ‪ code‬ثم قم بتحديد االسم المقابل‬
‫لـ‪ Variable Name‬ثم بعد ذلي قم بنسخه عن طريق لوحة المفاتيح ( ‪Ctrl +‬‬
‫‪ ) c‬أغلق النافذة الحالية ثم انقر نقرا مزدوجا على زر تعديل السجل الحالي‬
‫للدخول الى منصة الكود ثم قم بكتابة الكود التالي ‪:‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 148 -‬‬ ‫‪[email protected]‬‬
‫اضافة سجل جديد‬
‫انقر نقرا مزدوجا على زر اضافة سجل جديد للدخول الى منصة الكود ثم قم‬
‫بكتابة الكود التالي ‪-:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 149 -‬‬ ‫‪[email protected]‬‬
‫حذف السجل الحالي‬
‫انقر نقرا مزدوجا على زر حذف السجل الحالي للدخول الى منصة الكود ثم‬
‫قم بكتابة الكود التالي ‪-:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 150 -‬‬ ‫‪[email protected]‬‬
‫البحث عن سجل أو أكثر‬
‫نقوم باضافة حقل نصي فارغ و زر جديد نسميه ابحث كما الشكل التالي‬

‫انقر نقرا مزدوجا على زر ابحث للدخول الى منصة الكود ثم قم بكتابة الكود‬
‫التالي ‪-:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 151 -‬‬ ‫‪[email protected]‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 152 -‬‬ ‫‪[email protected]‬‬
‫ثم الضغط على زر ابحث سيتم البحث عن سجل يبدأ رقمه االكاديمي بهذا‬
‫الرقم المراد البحث عنه‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 153 -‬‬ ‫‪[email protected]‬‬
‫اظهار صوره مرافقه للسجالت (توافق موقع السجل الحالي)‬

‫ناتج العمل سيكون كالتالي ‪-:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 154 -‬‬ ‫‪[email protected]‬‬
‫أوال ‪ :‬عند تنفيذ اطار العمل يظهر لنا الشكل مقارع للتالي ‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 155 -‬‬ ‫‪[email protected]‬‬
‫بعد ذلي نقوم بنقر زر الصور الدراج صوره جديدة صاندوق تصافح سايظهر‬
‫لنا مشابه للتالي ‪:‬‬

‫قم بالتصفح حتى تصل الى صوره مناسبة تستطيع إدراجها‬

‫ثم قم بالضغط على زر ‪ Open‬فتنادرج الصاورة فاي خاناه الصاور كماا الشاكل‬
‫التالي ‪-:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 156 -‬‬ ‫‪[email protected]‬‬
‫اآلن كيف تم ذلي ؟‬

‫بأداة المتصفح ولنسميه ‪dialog1‬‬ ‫اوال نقوم بادراج اطار عمل جديد خا‬

‫بعد ذلي نقوم باختيار المتصفح ‪ File Chooser‬الموجود ضمن األدوات‬


‫‪ Swing Windows‬وادراجه داخل االطار ‪dialog1.ava‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 157 -‬‬ ‫‪[email protected]‬‬
‫ليصبح الشكل مشابه للتالي‬

‫اآلن نعود الى االطار األساسي ‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 158 -‬‬ ‫‪[email protected]‬‬
‫ننقر نقر مزدوج على زر الصور ثم نقوم بكتابة الكود التالي‬

‫نفذ البرنامج ‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 159 -‬‬ ‫‪[email protected]‬‬
‫اضغط زر الصور ‪-:‬‬

‫اختر الصورة ثم اضغط على زر فتح‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 160 -‬‬ ‫‪[email protected]‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 161 -‬‬ ‫‪[email protected]‬‬
‫الوحـــــــــــــــــدة التاسعة‬
‫التقاريـــــــــــــــــــــــــــــر‬

‫في هذا الفصل سنشرا كيفية تصميم التقارير باستخدام أداة تقارير مفتوحة‬
‫المصدر المسماه جاسبر ربورت ‪ JasperReport‬ويطلق عليها ايضا‬
‫‪ iReport‬والتي تقوم بالكتابة الى أهداف متنوعة مثل ‪ :‬الشاشة والطابعة‬
‫الى ملفات من نوع بي دي اف ‪ pdf‬اتش تي ام ال ‪ html‬ملف‬
‫ميكروسوف اكسل وغيرها الكثير‪ .‬وكيفية ربط هذا التقرير بأداة التقارير‬
‫ثم استدعاء هذه التقارير من خالل البرنامج وذلي بتتبع النقاط التالية ‪:‬‬

‫‪ ‬أهميـــة التقارير ومولد التقارير ‪.‬‬


‫‪ ‬خطوات انزال وتثبي اداة التقارير ‪ iReport‬على الجهاز ‪.‬‬
‫‪ ‬خطوات انشاء التقرير ‪-:‬‬
‫‪ o‬انشاء اتصال مع مصدر قاعدة البيانات ‪DSN‬‬
‫‪ o‬خطوات تفعيل معالج التقارير ‪.‬‬
‫‪ ‬ربط التقارير واستدعائها من خالل البرنامج ‪.‬‬

‫أهمية التقارير ومولد التقارير‬


‫تعتبر التقارير من أهم أجزاء برنامج قواعد البيانات فهي الصورة التي‬
‫يراها المستفيد من البرنامج والتي تخرج فيها مخرجات البرنامج فمثال عند‬
‫تصميم برنامج لمتابعة حسابات العمالء ال بد من توفير مجموعة من التقارير‬
‫منها ‪:‬‬
‫تقارير بحسابات العمالء خالل فترة ‪.‬‬
‫تقارير بحسابات عميل خالل فترة ‪.‬‬
‫تقارير بأرصدة العمالء وتقرير برصيد عميل معين وهكذا ‪...‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 162 -‬‬ ‫‪[email protected]‬‬
‫وهذه التقارير هي التي تعطي قيمه للبرنامج ألن البرنامج بدون تقارير يعتبر‬
‫بال فائدة (في أغلب البرامج) ألنه ينفذ العمليات وال يعطي النتائج وبالتالي‬
‫يصبح وسيلة لحف البيانات وعرضها على الشاشه فقط ‪.‬‬

‫وكذلي عملية تصميم التقارير قبل برمجة النوافذ تتطلب جهد من المبرمج‬
‫حيث يقوم المبرمج بتصميم التقرير باستخدام أوامر البرمجة كما يهتم بضبط‬
‫الهوامش وغيرها من العمليات الصعبة ولكن مع ظهور النوافذ ظهرت‬
‫أدوات منفصلة لتصميم التقارير ثم ربطه بالبرنامج ومن هذه األدوات أداة‬
‫التقرير جاسبر ربورت ‪ JasperReport‬الذي يوفر معظم العمليات‬
‫المطلوبة لتنظيم التقارير مع إمكانية ربطة بالبرنامج و التقرير الذي يتم‬
‫تصميمه يمكن استدعائه من برنامج مصمم باستخدام لغة الجافا مع مراعاة‬
‫اإلصدار ‪.‬‬

‫أوال ‪ :‬تنزيل ( ‪ ) download‬مقابس اداة حزمة التقارير المسماه‬


‫‪ iReportPlugins‬الخاصه بـ ‪ JasperReports‬وذلي عن طريق الموقع‬
‫الخا بالشركة األم ‪.Jaspersoft‬‬

‫ثانيا ‪ :‬لتثبي ( ‪ ) install‬اداة التقارير بداخل الن بينز ‪ NetBeans‬يجب‬


‫اوال في الضغط عن الملف الذي تم انزاله على الجهاز وذلي بالضغط بالزر‬
‫االيمن للفأرة ثم اختيار امر في الضغط لكي يتم فرز الملفات االربعة داخل‬
‫مجلد يسهل فتحه‬

‫ثم تثبيته على الجهاز وذلي باتباع الخطوات التاليه ‪-:‬‬


‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 163 -‬‬ ‫‪[email protected]‬‬
‫‪ )1‬قم بتشغيل منصة الن بينز ‪NetBeans‬‬
‫‪ )2‬اختر قائمة أدوات ‪ Tools‬ثم اختر منها االمر مقابس توصيل‬
‫) ‪( Plugins‬‬
‫‪ )3‬اختر عالمة التبويب ‪Downloaded‬‬
‫‪ )4‬اضغط الزر … ‪Add plugins‬‬

‫‪ )5‬اختر ثم حدد جميع الملفات داخل هذا المجلد ‪iReport‬‬


‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 164 -‬‬ ‫‪[email protected]‬‬
: ‫والتي هي‬
Ireport-designer
Jasperserver-plugin
Jasperreports-componenets
Jasperreports-extentions

‫ المهنـدس حـــاتم آل هتيــــله‬/ ‫ تقنية المعلومات وبرمجة الويب‬/ ‫الكليـــة التقنيـــــة بنجــــران‬
- 165 - ‫صفحة‬ [email protected]
‫وبعد االختيار سترى هذا المشهد ‪-:‬‬

‫تأكد من ان جميع الملفات تم وضع عالمة االختيار صح بجانبها ثم اضغط على‬


‫زر ‪ install‬ستظهر الشاشه التاليه‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 166 -‬‬ ‫‪[email protected]‬‬
‫‪ )6‬اضغط زر التالي ‪ Next‬ستظهر لي شاشه الموافقة على الشروط‬
‫قم بالموافقة عليها ثم اضغط زر التثبي ‪ Install‬بعد ذلي ستظهر لي‬
‫رسالة التأكد من شهادة المصدر‬

‫قم بالضغط على زر المتابعه ‪Continue‬‬


‫‪ )7‬اضغط على زر التثبي سيظهر لي شكل مشابه لهذا الشكل‪-:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 167 -‬‬ ‫‪[email protected]‬‬
‫‪ )8‬اضغط زر االنتهاء ‪Finish‬‬

‫انشـــــــــــاء تقاريــــــــــر‬
‫االن سنعرف كيفية انشاء تقارير باستخدام الن بينز وبمساعدة من ملفات‬
‫‪ iReport‬التي تم تثبيتها‪.‬‬
‫أوال ‪ -:‬انشاء اتصال مع مصدر قاعدة البيانات ‪DSN‬‬
‫(‪ )Data Source Name Connection‬التي سيتم عرض التقارير من‬
‫خاللها وذلي في حالة عدم وجود اتصال مسبق‪ .‬وهي تشمل (محر قاعدة‬
‫البيانات و اسم قاعدة البيانات شامله امتدادها ‪ -‬موقع الوصول اليها‪) -‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 168 -‬‬ ‫‪[email protected]‬‬
‫وذلي باتباع الخطوات التاليه ‪-:‬‬
‫‪ )1‬اذهب الى لوحة التحكم ثم اختر ادوات اداريه‬

‫‪ )2‬بعد ذلي نختار مصادر البيانات (‪)ODBC‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 169 -‬‬ ‫‪[email protected]‬‬
‫‪ )3‬ثم نختار عالمة التبويب ‪ DSN‬النظام‬

‫ثم نضغط على الزر اضافة‪...‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 170 -‬‬ ‫‪[email protected]‬‬
‫نضغط على زر انهاء فتظهر لنا هذه الشاشه‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 171 -‬‬ ‫‪[email protected]‬‬
‫نختار االمر تحديد‪...‬‬
‫‪ )4‬نقوم بالتصفح داخل دالئل لنصل الى مبتغانا بعد تحديد محرك االقرا‬
‫الذي يحوي قاعدة البيانات التي نريد التعامل معها‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 172 -‬‬ ‫‪[email protected]‬‬
‫من الطرف االيمن ( اسم قاعدة البيانات ) نختار قاعدة البيانات التي‬
‫نرغب بالتعامل معها‬

‫بعد ذلي نقوم بالضغط على زر موافق‬


‫‪ )5‬الح ظهور اسم قاعدة البيانات المختار مع االمتداد كامال بجانب قاعدة‬
‫البيانات ‪:‬‬

‫‪ )6‬قم باعطاء اسم مصدر البيانات نفس اسم قاعده البيانات التي تم اختيارها‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 173 -‬‬ ‫‪[email protected]‬‬
‫قم بالضغط على زر موافق‬

‫‪ )7‬الح ظهور اسم قاعدة البيانات وبجانبها اسم مشغل قاعدة البيانات‬

‫‪ )8‬اخيرا قم بالضغط على زر موافق‬

‫ثانيا ) خطوات تفعيل معالج التقارير ‪-:‬‬


‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 174 -‬‬ ‫‪[email protected]‬‬
‫قم بالضغط بالزر االيمن للفارة على اسم المشروع الذي تريد عرض التقارير‬
‫من خالله ثم اختر ‪:‬‬
‫…‪New  Other‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 175 -‬‬ ‫‪[email protected]‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 176 -‬‬ ‫‪[email protected]‬‬
‫بعد ذلي نقوم بكتابة نفس اسم قاعدة البيانات في محرك قواعد البيانات‬
‫والذي في مثالنا هو ‪HAT‬‬

‫اختر بعد ذلي نوع محرك قاعدة البيانات‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 177 -‬‬ ‫‪[email protected]‬‬
‫اكمل مسار الوصول الى قاعدة البيانات وذلي بكتابة اسم قاعدة البيانات في‬
‫حقل ‪ URL‬حيث سيصبح الشكل مشابه لــ ‪- :‬‬
‫‪Jdbc:odbc:HAT‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 178 -‬‬ ‫‪[email protected]‬‬
‫بعد ذلي اضغط على زر ‪ Test‬وذلي لفحص اكتمال ونجاا الربط‪-:‬‬

‫نقوم بالضغط على زر ‪ OK‬وبدون كتابة أي رقم سري الننها لم نحف قاعدة‬
‫البيانات برقم سري‪.‬‬

‫بعد ذلي اضغط على زر ‪ Save‬سيظهر لنا الشكل التالي ‪-:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 179 -‬‬ ‫‪[email protected]‬‬
‫نقوم بالضغط بعد ذلي على زر ‪Design query‬‬

‫اضغط ‪OK‬‬
‫سيظهر لنا شكل مقارع للشكل التالي‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 180 -‬‬ ‫‪[email protected]‬‬
‫نقوم باختيار الجدول الذي نريد عرض النتائج له ثم نضغط على زر ‪OK‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 181 -‬‬ ‫‪[email protected]‬‬
‫سنشاهد االستعالم التلقائي الذي بناه المعالج في حالة الرغبة في تغيير‬
‫االستعالم يتم تغيير االستعالم في هذه المنطقه (كثير من التقارير تعتمد‬
‫بشكل كبير على هذه المنطقه في التعامل مع نوع وطريقة عرض السجالت)‬
‫بعد ذلي نقوم بالضغط على زر ‪Next‬‬

‫ثم نضغط على زر ‪OK‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 182 -‬‬ ‫‪[email protected]‬‬
‫نقوم باختيار الحقول التي نرغب بعرضها في التقرير وذلي باستخدام االسهم‬

‫ثم نضغط على الزر ‪Next‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 183 -‬‬ ‫‪[email protected]‬‬
‫في هذه الشاشه نستطيع فرز النتائج على شكل مجموعات اعتمادا على الحقل‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 184 -‬‬ ‫‪[email protected]‬‬
‫اخيرا نضغط على الزر ‪ Finish‬فيظهر لنا شكل مقارع لهذا النموذج‬

‫نقوم بالضغط على زر ‪ Preview‬لنشاهد المخرجات‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 185 -‬‬ ‫‪[email protected]‬‬
‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 186 -‬‬ ‫‪[email protected]‬‬
‫ربط التقارير واستدعائها من خالل البرنامج‬
‫علمنا كيف نقوم بانشاء تقرير باستخدام ‪ jaspersoft‬ولكي تتم االستفادة الفعليه‬
‫من هذا التقرير يجب استدعائه عن طريق اطار العمل ‪ Frame‬للبرنامج هنا‬
‫سنتعرف على كيفية الربط والتي تتم من خالل مجموعه من الخطوات ‪- :‬‬
‫‪ )1‬انزال حزمتي التقارير الخاصه بمكتبات التعامل مع التقارير وهما‪-:‬‬
‫‪iReport-X.X.X-windows-installer‬‬
‫‪jasperreports-X.X.X-project‬‬

‫‪ )2‬انشاء العنصر الذي سيتم من خالله االستدعاء (غالبا يكون زر ‪)Button‬‬


‫‪ )3‬تحديد نوع الحدث (نوع التأثير على هذا العنصر)‬
‫‪ )4‬كتابة الكود داخل محتوى الحدث لهذا العنصر‪.‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 187 -‬‬ ‫‪[email protected]‬‬
‫أوال ‪ /‬انزال حزمتي المكتبات‬
‫هذه المكاتب ال يتم انزالها تلقائيا مع الن بينز ولذلي يتوجب علينا انزالها خطوة‬
‫بخطوه عن طريق موقع الشركه االم المسماه ‪ Jaspersoft‬حيث يتم انزالها من‬
‫الموقع الى جهاز الكمبيوتر وهي موجودة داخل مجلدان هما ‪-:‬‬
‫‪iReport-4.7.1-windows-installer‬‬
‫و‬
‫‪jasperreports-4.7.1-project‬‬

‫هذا المجلدان يتم تغيير رقم االصدار لهما من خالل الشركه االم بين وق وآخر لكن‬
‫االسم الثاب لهما في كل اصدار بدون الرقم الممثل لهما بــ‪ X‬هو ‪-:‬‬
‫‪iReport-X.X.X-windows-installer‬‬
‫‪jasperreports-X.X.X-project‬‬
‫بعد انزالهما على جهاز الكمبيوتر الخا بي قم بتنصيب‬
‫‪iReport-4.7.1-windows-installer‬‬
‫على جهاز الكمبيوتر‪.‬‬
‫ثم بعد ذلي قم بفي الضغط للملف اآلخر ليصبح شكله كما يلي ‪:‬‬

‫بعد ذلي نقوم نتوجه الى البرنامج ثم نقوم بالضغط بالزر األيمن للفأرة على مجلد‬
‫المكتبات ‪-:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 188 -‬‬ ‫‪[email protected]‬‬
‫ثم نختار االمر خصائص ‪ properties‬فتظهر لنا نافذه ‪-:‬‬

‫نضغط على الزر ‪ Add JAR/Folder‬فتظهر لنا نافذة مشابهه للتالي ‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 189 -‬‬ ‫‪[email protected]‬‬
‫نقوم بالتنقل حتى نصل الى المجلد‬
‫‪jasperreports-4.7.1-project‬‬

‫نقوم بفتح المجلد فنشاهد‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 190 -‬‬ ‫‪[email protected]‬‬
‫نقوم بالدخول الى داخل المجلد المسمى ‪ lib‬لنجد مجموعه من المجلدات وملفات‬
‫الــ‪ zip‬والــ‪JAR‬‬

‫قم باختيار جميع الملفات ثم اضغط على زر فتح ‪Open‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 191 -‬‬ ‫‪[email protected]‬‬
‫مرة اخرى قم بالضغط على الزر ‪Add JAR/Folder‬‬

‫قم باالنتقال الى مجلد آخر اسمه ‪dist‬‬


‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 192 -‬‬ ‫‪[email protected]‬‬
‫قم بتحديد ملفات الجار األربعه فقط‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 193 -‬‬ ‫‪[email protected]‬‬
‫اضغط على زر فتح ‪Open‬‬

‫بعد ذلي اضغط على زر ‪ OK‬ليصبح الشكل مشابه للتالي ‪:‬‬

‫وبذلي نكون قد قمنا بتحميل جميع المكاتب التي قد نحتاجها‬


‫في الربط مع التقارير‪.‬‬

‫ثانيا ‪ /‬انشاء العنصر الذي سيتم من خالله االستدعاء‬


‫(زر ‪)Button‬‬
‫انشاء العنصر الذي سيتم من خالله االستدعاء (غالبا يكون زر ‪)Button‬‬
‫فمثال في برنامجنا السابق نحتاج الى اضافة زر يتم كتابة كلمة طباعه فوقه لكي‬
‫يتضح للمستخدم ان هذا الزر يتم استخدامه لطباعة تقرير ليصبح الشكل مشابه لما‬
‫يلي ‪-:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 194 -‬‬ ‫‪[email protected]‬‬
‫ثالثا ‪ /‬تحديد نوع الحدث (نوع التأثير على هذا العنصر)‬

‫بعد ذلي نقوم بتحديد نوع الحدث الذي من خالله سيتم االجراء وذلي بالضغط‬
‫بالزر األيمن للفأره ثم نختار ‪ Evenets‬منها نختار ‪ Mouse‬ثم‬
‫‪mouseClicked‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 195 -‬‬ ‫‪[email protected]‬‬
‫رابعا ‪ /‬كتابة الكود داخل محتوى الحدث لهذا العنصر‬
‫ثم نقوم بكتابة الكود التالي ‪-:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 196 -‬‬ ‫‪[email protected]‬‬
‫الح اننا قمنا بكتابة اربعة اسطر داخل الــ } {‪. try‬‬
‫الح ايضا اننا قمنا بكتابة امتداد التقرير المسمى ‪ report1.jrxml‬كامال داخل‬
‫متغير من نوع نص اسمه ‪.repo‬‬
‫الح ايضا انه يوجد خط احمر متعرج تح اسماء الفئات والذي يعني اننا لم نقم‬
‫باستدعاء المكاتب ‪ Libraries‬الخاصه (التي قمنا بانزالها في أوال ) بهذه الفئات‬
‫في بداية البرنامج وهذه الفئات هي ‪-:‬‬

‫لكنه يجب كتابة كلمة ‪ import‬قبل كل مكتبة من هذه المكاتب الخمس أعاله ليصبح‬
‫شكلها مشابه لما يلي ‪-:‬‬

‫وليصبح مكان كتابتها في البرنامج كما يلي‬


‫(السطر الـ ‪ 12‬و ‪ 13‬و ‪ 14‬و ‪ 15‬و ‪-: ) 16‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 197 -‬‬ ‫‪[email protected]‬‬
‫لنعود الى الكود وسنالح انه قد تم اختفاء جميع الخطوط الحمراء والذي يدل على انه‬
‫تم التعرف على هذه الفئات الموجودة داخل مجموعة المكاتب ليصبح الشكل كما يلي ‪:‬‬

‫اخيرا قم بتنفيذ الملف ليصبح الشكل مقارب لما يلي‬


‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 198 -‬‬ ‫‪[email protected]‬‬
‫قم بالضغط على زر طباعة التقرير ليظهر لي الشكل التالي‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 199 -‬‬ ‫‪[email protected]‬‬
‫باالضافه الى اننا نستطيع تحويل التقرير الى ملف آخر تم حفظه بامتدادات مختلفه‬
‫كما الشكل‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 200 -‬‬ ‫‪[email protected]‬‬
‫طباعة تقارير اعتمادا على استعالمات محدده‬

‫هل نستطيع طباعة تقارير اعتمادا على استعالم محدد ؟ نعم‪.‬‬


‫فمثال ال نريد طباعة تقرير شامل بجميع بيانات الموظفين ‪ ,‬بل نرغب بطباعة‬
‫تقرير تفصيلي معتمد على استعالم ذا معايير محدده‪.‬‬
‫بمعنى آخر نريد تقرير عن االشخا الساكنين بمدينة نجران مثال‪.‬‬
‫اذا يجب أوال اضافة حقل معيار االستعالم ليصبح شكل النموذج مشابه للتالي‪:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 201 -‬‬ ‫‪[email protected]‬‬
‫اذا يجب علينا تغيير الكود ليصبح كالتالي ‪:‬‬

‫ال ننسى ان نضيف مجموعة المكتبات التاليه ‪-:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 202 -‬‬ ‫‪[email protected]‬‬
‫ثم نقوم بعد ذلي بالضغط على زر طباعة التقرير ‪-:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 203 -‬‬ ‫‪[email protected]‬‬
‫فيقوم البرنامج بعرض التقرير بناءا على االستعالم المرغوع كما يلي ‪-:‬‬

‫الكليـــة التقنيـــــة بنجــــران ‪ /‬تقنية المعلومات وبرمجة الويب ‪ /‬المهنـدس حـــاتم آل هتيــــله‬
‫صفحة ‪- 204 -‬‬ ‫‪[email protected]‬‬

You might also like