0% found this document useful (0 votes)
15 views103 pages

Java Sup 1295

Uploaded by

bnhatm216
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)
15 views103 pages

Java Sup 1295

Uploaded by

bnhatm216
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/ 103

‫بسم اهلل الرحمن الرحيم‬

‫جامعة القدس المفتوحة‬


‫برنامج التكنولوجيا والعلوم التطبيقية‬

‫الملحق العملي‬
‫لمقرر البرمجة الكينونية‬
‫بلغة جافا( ‪)1295‬‬
‫إعداد‪ :‬أ‪ .‬طروب سعد‬
‫مقدمة لغة جافا‬
‫كثي ار ما نسمع في هذه األيام عن لغة جافا‪ ،‬حتى يبدو وكأنها قي كل مكان حتى في المكتبات‪.‬كل هذا‬
‫يجعلك تتساءل عن سبب انتشار هذه اللغة؟ والجواب ببساطة أنها تتيح للمستخدمين إمكانية تطوير تطبيقات‬
‫تعمل على الويب واألجهزة الصغيرة كالهاتف النقال‪ ،‬كما أنها تستخدم في برمجة الشبكات‪.‬‬
‫كانت بدايات لغة جافا في أوائل التسعينيات من القرن العشرين في عام ‪ ،١٩٩١‬اخترعت لغة جافا‬
‫شركة صن ميكروسيستمز‪ .‬ولهذا االختراع قصة عجيبة‪ ،‬حيث أن الشركة كانت قبلل ذللك قلد كلفلت المهنلدس‬
‫جليمس جلوزلينج بوضلع بلرامج لتشلغيل األجهلزة التطبيقيلة الذكيلة مثلل التليفزيلون التفلاعلي باسلتخدام لغلة‬
‫سي ‪،++‬وحينها وجد جيمس جوزلينج صعوبة في التعامل مع هذه اللغة‪ ،‬فقام هو وفريق العمل المسلاعد لل‬
‫بتطويرها‪ ،‬فولدت لغة جديدة تتوافق ملع احتياجاتل فكانلت لغلة جافلا‪ ،‬وقلد خططلت شلركة صلن فلي تللك األيلام‬
‫الستغالل هذه اللغة الوليدة في التليفزيون التفاعلي لكي تلربح المليلارات‪ ،‬وحلدث نلوع ملن اللبطء فلي مشلروع‬
‫التلفزيون التفاعلي ربملا علن قصلد ملن الشلركات األخلر المنافسلة‪ ،‬ونتيجلة للذلك فكلرت الشلركة فلي ايقلاف‬
‫مشروع تطوير هذه اللغة الوليدة وتسريح العاملين في هذا المشروع أو نقلهم إلى قسم آخر‪ .‬ولكن حدث ما لم‬
‫يكن في الحسبان حيث أن في هذه الفترة كانت االنترنت قد بدأت في االنتشار بسرعة مذهللة ملع نلزول نظلام‬
‫الويندوز لألسواق‪ ،‬وحيث أن لغة جافا الوليدة التي اخترعت أصال لبرمجة األجهزة التطبيقية فيها من السمات‬
‫ملا يجعلهلا أكثلر توافقلا ملع الشلبكة العنكبوتيلة الدوليلة اإلنترنلت‪ ،‬فقلد كلان لهلا السلبق وأضلافت الكثيلر إللى‬
‫اإلنترنت الذي كان قبلها مقصو ار عللى تبلادل النصلو ‪ .‬ولكلن المطلورين بشلركة صلن ابتكلروا طريقلة تجعلل‬
‫برامج جافا تعمل بسهولة فلي صلفحات اإلنترنلت وغيلروا االسلم اللذي كلان قلد أطلقل عليل مبتكرهلا ملن آواك‬
‫شجرة السنديان إللى الجافلا‪ ،‬وملن هنلا أصلبحت جافلا مرتبطلة فلي شلهرتها باإلنترنلت‪ ،‬حيلث أن برنلامج جافلا‬
‫صغير يوضع في صفحة من صفحات موقع على الشبكة الدولية يراه الماليين في جميع أنحاء العالم في نفس‬
‫الوقت وقد كان هذا ال يتوفر إال ملع الجافلا مملا أعطاهلا شلهرة واسلعة‪ .‬ولحسلن حلظ شلركة صلن أن لغلة جافلا‬
‫أكدت نفسها فلي المجلال اللذي طلورت لل أصلال‪ ،‬فقلد بلدأ اآلن التليفزيلون التفلاعلي فلي االنتشلار وملا يسلمى‬
‫سينما المنزل والمشاهدة حسب الطلب‪ .‬وليس هذا فقط بل أنتشر ما هو أكثر فائدة لشركة صلن وهلو الهلاتف‬
‫المحمول وللجافا أكبر دور في برمجة البلرامج التلي يعملل بهلا فلي أجيالل السلابقة والالحقلة‪ ،‬وال نسلتغرب أن‬
‫يحلدث نلوع ملن الغيلرة بلين شلركة ميكروسلوفت وشلركة صلن ميكروسيسلتمز‪ ،‬مملا دفلع ميكروسلوفت إللى أن‬
‫تحذف ماكينة الجافا االفتراضية من اإلصدارة األولى للويندوز اكس بي وهذه الماكينة االفتراضية مسئولة عن‬
‫بلرامج الجافلا عللى االنترنلت ولكلن ميكروسلوفت تراجعلت أملام طللب ماليلين المسلتخدمين حلول العلالم‬ ‫علر‬
‫فوضعتها مرة ثانية في اإلصدارات الالحقة وقد كانت قضية مشهورة تناولتها الصحف والمجالت‪.‬‬

‫‪2‬‬
‫وقد ساهم في شهرة جافا أيضا برامجها العلمية التفاعلية التي تصلح لمعظم المناهج التعليمية في جميع‬
‫مراحل التعليم وبالتالي فان لها دو ار كبي ار في التعليم االلكتروني والتعليم عن بعد والفصول االفتراضية‪.‬‬

‫من مميزات جافا أن جميع البرمجيات التي تكتب بالجافا ال يتم ترجمتها للغة اآللة مثل باقي لغات البرمجلة‬
‫بل يتم ترجمتها إلى ما يسمى بالل ‪( ByteCode‬تحفظ كملف بإمتداد “‪ ،)”class.‬وهذه األخيرة عبارة عن‬
‫لغة وسيطة بين لغة البرمجة ولغة اآللة‪ ،‬بالتالي فإن برمجيات الجافا تعمل عللى “جهلاز جافلا اإلفتراضلي”‬
‫(‪،)Java Virtual Machine‬وهو عبارة عن برنامج مشغل لبرمجيات الجافا‪ ،‬مما يجعل برمجيات الجافا‬
‫غير قابلة للتشغيل في حالة عدم وجود هذا البرنامج‪ ،‬ولكن في نفس الوقت فلإن هلذه الخاصلية تجعلل لغلة‬
‫جافا أقو بكثير من نظيراتها‪ ،‬حيث أن بفضل هذه الخاصية يمكننا تشغيل اي برنامج جافلا كتلب عللى أي‬
‫نظام تشغيل على أي نظام تشغيل آخر دون الحاجة إلعادة عملية البرمجة والترجمة‪.‬‬

‫مكونات اآللة التخيلية لجافا‬

‫‪3‬‬
‫مزايا لغة جافا‪:‬‬

‫الخدمات المتميزة عن اللغات األخر وهي ‪:‬‬ ‫صنعت لغة جافا حتى تقدم بع‬

‫‪ .1‬اإلنتقالية (‪ : )portability‬وهي إمكانية تشغيل برمجيات الجافا على أي نظام تشلغيل كملا ذكرنلا‬
‫باألعلى‪.‬‬
‫‪ .2‬األمان (‪ : )security‬كون برمجيات الجافا ال تعمل إال عن طريق جهلاز جافلا اإلفتراضلي فبالتلالي‬
‫البرمجيات مما يعيق إمكانيلة صلنع برمجيلات مخربلة‬ ‫فإن هذا الجهاز يضع حدودا إلمكانيات بع‬
‫عن طريق هذه اللغة‪.‬‬
‫‪ .3‬كائنية التوج (‪ :)Oriented Object‬أن ابسط برنامج يمكن عمل بالجافلا ال بلد ان يتبلع توجل‬
‫البرمجة الكائنية التي تسهل الكثير والكثير من المشاكل بالنسبة لمتطور البرمجيات‪.‬‬
‫بكلل‬ ‫‪ :)Distributed( .4‬يمكن صنع برامج جافا تعمل على الشلبكة و تتخاطلب ملع بعضلها اللبع‬
‫سهولة‪.‬‬

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

‫منصات جافا‬

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

‫فلنر كل من هذه المنصات و ما تقدم لنا كمبرمجين ومطوري نظم‪:‬‬

‫‪: )Edition (J2SE Java 2 Standard) .1‬‬

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

‫‪4‬‬
‫‪ ‬األملللور األساسلللية بالجافلللا ‪ :‬تلللوفر اساسللليات الكائنلللات ووحلللدات تعريلللف المتغيلللرات والنصلللو‬
‫وغيرها من األمور األساسية في لغة الجافا في رزمة مثل ‪.Java.lang‬‬
‫‪ ‬إمكانيللات القلراءة والكتابللة ‪ :‬التللي تللوفر وسلليلة الكتابللة والقلراءة للبرمجيللات إمللا مللن وفللي الملفللات‪،‬‬
‫قواعد البيانات ‪،‬الشبكات وغيرها متوفرة في رزمة ‪.Java.io‬‬
‫‪ ‬المكتبللات المرئيللة ‪ :‬هللي مكتبللات تسللاعد فللي تكلوين الواجهللة الرسللومية للمسللتخدم وأشللهر رزمتللين‬
‫لتكوين الواجهات الرسومية هم ‪.Java.awt, and Javax.swing :‬‬
‫‪ ‬التعامللل مللع قواعللد البيانللات ‪ :‬تللوفير امكانيللة إدخللال البيانللات والبحللث عنهللا‪ ،‬أغلبهللا فللي رزمللة‬
‫‪.java.sql‬‬
‫و هنالك غير هذه الكثير من الرزم المفيدة المتوفرة مع هذه المنصة‪.‬‬

‫‪: )Edition (J2ME Java 2 Micro .2‬‬

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

‫‪: )Enterprise Edition (J2EE Java 2) .3‬‬

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

‫كما أن هنالك منصات للجافا ال تلأتي ملع الجافلا نفسلها وال هلي ملن صلنع صلن ميكروسيسلتمس عللى‬
‫سبيل المثال (وليس الحصر) الل ‪ GWT‬والل ‪ android‬و هاتين المنصلتين هملا ملن صلنع جوجلل‪ :‬األوللى‬
‫لبرمجة تطبيقات الويب والثانية لتطوير برامج تعمل على نظام تشغيل جوجل للجواالت األندرويد‪.‬‬

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

‫‪5‬‬
‫بيئة العمل في ‪Java‬‬

‫يشلللير المصلللطلح ‪ IDE‬إللللى ‪ Integrated Development Environment‬وهلللي‬


‫البرنللامج الللذي يسللاعد المبللرمج ليكتللب ويتللرجم وينفللذ الب لرامج المكتوبللة بلغللة جافللا‪ ،‬وتت لوافر‬
‫البرامج التالية‪:‬‬

‫‪ NetBeans‬‬
‫‪ Forte for Java‬‬
‫‪ Borland JBuilder‬‬

‫لصناعة برامج باستخدام لغة جافا نحتاج إلى برنامجين وهما (المحرر والمترجم)‪ :‬و يتم تنزيلهم على‬
‫الترتيب التالي‪:‬‬

‫‪ .1‬تنصيب المترجم‪:‬‬

‫‪ .2‬تنصيب المحرر‬

‫أما المترجم فهو تابع للغة التي نبرمج بها وهي لغة جافا و بالتالي فالمترجم يكون من اللغة ذاتها‪.‬‬
‫ونستخدم برنامج اسم )‪ .Java Development Kit (JDK‬هذا المترجم يكون مسئوال عن تحويل لغة‬
‫الجافا التي نكتب بها برامجنا إلى لغة الهدف والتي تتحول إلى لغة اآللة‪.‬‬

‫أما المحرر‪ ,‬فيمكن أن يكون ‪ , Jcreator‬وهناك برامج أخر مثل ‪ netbeans‬وذلك حسب ما يختاره‬
‫مشرفك للتدريب‪ .‬من مميزات ‪:Jcreator‬‬

‫• سهولة التعامل‪.‬‬
‫• تمييز مفردات لغة البرمجة‪.‬‬

‫‪6‬‬
‫• سهولة ربط بالمترجم‪.‬‬

‫اإلنترنت‪:‬‬ ‫على‬ ‫الشركة‬ ‫موقع‬ ‫خالل‬ ‫من‬ ‫علي‬ ‫والحصول‬ ‫البرنامج‬ ‫تحميل‬ ‫يمكن‬
‫‪ ،http://www.jcreator.com‬أو مراجعة مشرفك أو فني المختبر لتزويدك ب ‪.‬‬

‫ومن فوائد محررات النصو ‪ :‬تمييز الكلمات المحجوزة للغة بألوان معينة‪ ،‬تمييز المتغيرات بألوان معينة‪،‬‬
‫اقتراح أسماء دوال و مساعدات على المبرمج‪.‬‬

‫لتنصيب المترجم ‪ ،JDK‬قم بتنزيل البرنامج كما أشرنا سابقلا‪ ،‬واتبع تتالي الخطوات‪.‬‬

‫إليك خطوات تنصيب المترجم ‪:Jcreator‬‬ ‫عزيزي الطالب‪ :‬إذا اخترت ‪ Jcreator‬كمحرر نصو‬

‫قم بالضغط على الملف التنفيذي للمترجم واتبع الخطوات كما في األشكال التالية‪:‬‬

‫‪7‬‬
8
9
‫خطوات ربط ‪ Jcewaror‬ب ‪:JDK‬‬

‫‪1‬‬

‫‪3‬‬ ‫‪4‬‬

‫‪2‬‬

‫إعداد ‪ /‬أ‪ .‬محمود رفيق حمدي الفرا ‪2011-2010‬‬

‫‪10‬‬
5

11
‫إذا عملت عزيزي الطالب على برنامج ‪ ، NetBeans‬إليك األجزاء الرئيسية للنافذة الخاصة ب ‪:‬‬

‫نافذة برنامج ‪ NetBeans‬الرئيسية‬

‫‪12‬‬
‫تمهيد الملحق العملي‪:‬‬
‫التركيبة األساسية للبرنامج بلغة جافا‪:‬‬

‫البرنامج في أي لغة برمجة يتكون من مجموعة من الجمل و الكلمات األساسيلة التي ال يمكن أن يعمل‬
‫أبسط برنامج من دونها‪ ,‬وهي كما تظهر في الشكل‪:‬‬

‫‪ ‬كلمات إنشاء المشلروع (‪ )public class‬واسم ‪.‬‬


‫‪ ‬الدالة األساسيلة (‪ )main‬وتركيبتها‪.‬‬
‫‪ ‬أقواس البداية والنهايلة‪.‬‬
‫‪ ‬جمل اإلدخال و اإلخراج (من دونها قد يعمل البرنامج دون تأثير ملموس)‪.‬‬

‫شرح البرنامج األول في لغة جافا‪:‬‬

‫‪ ‬كلمة بناء البرنامج‪public class :‬‬


‫‪ ‬كلمة ‪ public‬تعني أن ما في داخل هذا الكائن البرمجي يمكن ألي كائن آخر استخدام و التعامل مع فهو‬
‫يعتبر (عام) داخل هذا المشروع‪.‬‬

‫‪13‬‬
‫‪ ‬كلمة ‪ class‬تعني كائن و هو البنية األساسيلة للغلة جافا‪ ,‬فكل برنامج في لغة جافا البد أن يحتوي على األقل‬
‫على تعريف كائن واحد‪.‬‬
‫‪ ‬كلمة ‪ first‬هي اسم (‪ )identifier‬لهذا الكائن وهي متغيرة حسب طبيعة عمل الكائن‪.‬‬

‫الدالة األساسية ‪:main‬‬

‫‪ ‬هي الدالة األساسيلة في كل مشاريع البرمجة في لغة جافا‪.‬‬


‫‪ ‬تبدأ ترجمة المشلروع دائملا من الدالة ‪ main‬ولها تركيبة واضحة وثابتة كما تشاهد في‬
‫األمثلة التالية‪:‬‬

‫تتكون الدالة الرئيسية من‪:‬‬

‫• التوقيع (‪ :)Signature‬هو رأس الدالة و تعرف الدالة ب ‪ ,‬و يتكون التوقيع من اسم‬
‫الدالة ‪ ,‬المعامالت و أنواعها‪ ,‬القيمة التي تعيدها الدالة‪ ,‬و درجة خصوصيلة الدالة‪.‬‬

‫• الجسم (‪ :)Body‬و هو المنطقة التي يتم فيها كتابة األوامر و التعليمات التي تمثل‬
‫المهمة التي نرغب في تنفيذها‪.‬‬

‫‪14‬‬
‫• البداية و النهايلة (} {) ‪ :‬هي األقواس التي تحدد بداية جسم الدالة و نهايتها‪ ,‬فالبداية‬
‫هي { و النهاية } ‪.‬‬

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

‫‪15‬‬
‫مكونات البرنامج األساسية وطباعة أول برنامج بلغة جافا‬ ‫المختبر األول‪:‬‬
‫أوال‪ :‬أهداف المختبر‪:‬‬
‫تم إعداد هذا المختبر لتمكين الطلبة‪:‬‬
‫المصطلحات والمفاهيم األساسية في لغة جافا‪.‬‬ ‫‪ .1‬يفهم بع‬
‫‪ .2‬معرفة مكونات برنامج جافا األساسية‪.‬‬
‫‪ .3‬إعداد البيئة التشغيلية للغة جافا وتنفيذ البرنامج األول‪.‬‬
‫‪ .4‬التعرف على مكونات مناهج الصنف ‪ JOptionPane‬الخاصة باظهار صناديق الحوار‪.‬‬
‫‪ .5‬طباعة مخرجات باستخدام جملة الطباعة االفتراضية ‪System.out.println‬‬

‫ثانيا‪ :‬عزيزي الطالب‪:‬‬


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

‫عزيزي الطالب‪:‬‬
‫كما هي اسفل‬ ‫المخرجات‬ ‫‪ ‬قم بتنفيذ البرنامج التالي على احد مترجمات لغة جافا‪ ،‬وارصد‬
‫البرنامج‪:‬‬

‫‪1‬‬ ‫‪// Welcome1.java‬‬


‫‪2‬‬ ‫‪// THE FIRST PROGRAMME IN JAVA‬‬
‫‪3‬‬
‫‪4‬‬ ‫{ ‪public class Welcome‬‬
‫‪5‬‬
‫‪6‬‬ ‫‪// main method begins execution of Java application‬‬
‫‪7‬‬ ‫) ][‪public static void main( String args‬‬
‫‪8‬‬ ‫{‬
‫‪9‬‬ ‫;) "‪System.out.println( "Welcome to Java First Lab‬‬
‫‪10‬‬
‫‪11‬‬ ‫‪} // end method main‬‬
‫‪12‬‬
‫‪13‬‬ ‫‪} // end class Welcome‬‬
‫مالحظة‪:‬‬

‫‪16‬‬
‫ واذكرها في البنود التالية وذلك بتحديد‬،‫استخرج من المثال السابق المكونات االساسية لبرنامج لغة جافا‬
:‫رقم السطر‬

.1

.2

.3

.4

:‫المخرجات‬

Welcome to Java First Lab

‫ حاول عزيزي الطالب ان تقوم بتطوير البرنامج السابق باضافة سطر مخرجات اضافي بيحث‬
:‫تصبح المخرجات كالتالي‬

Welcome to Java First Lab

I study in Al Quds Open University

:‫احد االجابات المقترحة‬

// Welcome1.java
2 // THE FIRST PROGRAMME IN JAVA
3
4 public class Welcome {
5
6 // main method begins execution of Java application
7 public static void main( String args[] )
8 {
9 System.out.println( "Welcome to Java First Lab" );
10 System.out.println( " I study in Al Quds Open University

" );
11

12
13 } // end method main
14
15 } // end class Welcome

17
:‫ اكتب البرنامج التالي بلغة جافا والحظ المخرجات التي تحصل عليها في صندوق الحوار‬

// Welcome4.java

2 // Printing multiple lines in a dialog box

4 // Java extension packages

5 import javax.swing.JOptionPane; // import class JOptionPane

7 public class Welcome4 {

9 // main method begins execution of Java application

10 public static void main( String args[] )

11 {

12 JOptionPane.showMessageDialog(

13 null, "Welcome\nto\nJava\nProgramming!" );

15 System.exit( 0 ); // terminate application

17 } // end method main

19 } // end class Welcome4

:‫المخرجات‬

18
‫المصفوفات ‪ +‬السالسل الرمزية ‪JOpionPane +‬‬ ‫المختبر الثاني‪:‬‬
‫أوال‪ :‬أهداف المختبر‪:‬‬
‫تم إعداد هذا المختبر لتمكين الطلبة‪:‬‬
‫التعرف على المفاهيم األساسية بلغة جافا‬ ‫‪.1‬‬
‫التعرف على اللبنات التي تكون لغة جافا من جمل وتعابير ومشغالت‬ ‫‪.2‬‬
‫أن يتعامل الطالب مع جمل التحكم والدوران‬ ‫‪.3‬‬
‫أن يتعامل الطالب مع السالسل الرمزية والمصفوفات‬ ‫‪.4‬‬
‫أن يوظف المناهج الخاصة بالسالسل الرمزية والمصفوفات في بناء برامج تطبيقية منوعة‪.‬‬ ‫‪.5‬‬
‫أن يوظف مناهج الصنف ‪ JOpionPane‬في تطبيقات مختلفة‪.‬‬ ‫‪.6‬‬
‫‪.7‬‬
‫ثانيا‪ :‬عزيزي الطالب‪:‬‬
‫[‪ ]1‬تأمل البرنامج التالي المكتوب بلغة جافا ثم اجب عن األسئلة التي تلي ‪:‬‬
‫;*‪import javax.swing.‬‬
‫{ ‪public class sumarray‬‬
‫‪// main method begins execution of Java application‬‬
‫) ][‪public static void main( String args‬‬
‫{‬
‫;} ‪int array[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10‬‬
‫;‪int total = 0‬‬
‫‪// add each element's value to total‬‬
‫) ‪for ( int counter = 0; counter < array.length; counter++‬‬
‫;] ‪total += array[ counter‬‬
‫‪JOptionPane.showMessageDialog( null,‬‬
‫‪"Total of array elements: " + total,‬‬
‫‪"Sum the Elements of an Array",‬‬
‫;) ‪JOptionPane.INFORMATION_MESSAGE‬‬
‫}};) ‪System.exit( 0‬‬

‫‪19‬‬
‫قم بطباعة البرنامج التالي وتنفيذه‪ ،‬وارصد النتائج التي تحصل عليها‬

‫‪ .1‬ما وظيفة البرنامج؟‬

‫‪ .2‬اكتب جملة تعريف المصفوفة‪.‬‬

‫‪ .3‬اكتب جملة الدوران التي تقوم بعملية الجمع وحدد مكونات هذه الجملة؟‬

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

‫‪ .5‬استخرج الجملة التي تعمل على إظهار صندوق الحوار السابق وحدد مكوناتها األساسية‪.‬‬

‫‪ .6‬لو أردنا إظهار المجموع بدون أن يظهر صندوق الحوار السابق‪ ،‬وذلك عن طريق ظهور الجملة التالية في نافذة‬
‫‪ output‬في مترجم جافا‪:‬‬

‫‪Total of array elements is: 55‬‬

‫اكتب العبارة الالزمة لذلك‪.‬‬

‫[‪ ]1‬تأمل البرنامج التالي الذي يحوي استخدامات المناهج المختلفة للسالسل الرمزية في جافا‪:‬‬

‫{ ‪public class StringBufferFunctionsDemo‬‬

‫{ )‪public static void main(String[] args‬‬

‫‪//‬‬ ‫‪Examples of Creation of Strings‬‬

‫;)"‪StringBuffer strBuf1 = new StringBuffer("JAVA EXAMPLES‬‬

‫‪StringBuffer strBuf2 = new StringBuffer(100); //With capacity 100‬‬

‫;)(‪StringBuffer strBuf3 = new StringBuffer‬‬ ‫‪//Default Capacity 16‬‬

‫;)‪System.out.println("strBuf1 : "+strBuf1‬‬

‫‪20‬‬
System.out.println("strBuf1 capacity : "+strBuf1.capacity());

System.out.println("strBuf2 capacity : "+strBuf2.capacity());

System.out.println("strBuf3 capacity : "+strBuf3.capacity());

System.out.println("strBuf1 length : "+strBuf1.length());

System.out.println("strBuf1 charAt 2 : "+strBuf1.charAt(2));

// A StringIndexOutOfBoundsException is thrown if the index is not valid.

strBuf1.setCharAt(1, 't');

System.out.println("strBuf1 after setCharAt 1 to t is : "+strBuf1);

System.out.println("strBuf1 toString() is : "+strBuf1.toString());

strBuf3.append("beginner-java-PROGRAMMING");

System.out.println("strBuf3 when appended with a String : "+strBuf3.toString());

strBuf3.insert(1, 'c');

System.out.println("strBuf3 when c is inserted at 1 : "+strBuf3.toString());

strBuf3.delete(1, 'c');

System.out.println("strBuf3 when c is deleted at 1 : "+strBuf3.toString());

strBuf3.reverse();

System.out.println("Reversed strBuf3 : "+strBuf3);

strBuf2.setLength(5); }}

:‫المخرجات‬

strBuf1 : JAVA EXAMPLES

strBuf1 capacity : 29

strBuf2 capacity : 100

strBuf3 capacity : 16

strBuf1 length : 13

strBuf1 charAt 2 : V

21
strBuf1 after setCharAt 1 to t is : JtVA EXAMPLES

strBuf1 toString() is : JtVA EXAMPLES

strBuf3 when appended with a String : beginner-java-PROGRAMMING

strBuf3 when c is inserted at 1 : bceginner-java-PROGRAMMING

strBuf3 when c is deleted at 1 : b

Reversed strBuf3 : b

22
‫البناء والمناهج والتوارث‬ ‫المختبر الثالث‪:‬‬
‫أوال‪ :‬أهداف المختبر‪:‬‬
‫تم إعداد هذا المختبر لتمكين الطلبة‪:‬‬
‫‪ .1‬التعرف على الصنف وعمليات المختلفة‪.‬‬

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

‫‪ .3‬أن يتعللرف الطالللب علللى الصللنف الفرعللي الللذي يللرث الصللنف األساسللي ويوظللف ذلللك فللي برنللامج‬
‫تطبيقي‪.‬‬

‫‪ .4‬أن يتعرف على مفهوم البناء ويوظف في برامج تطبيقية مختلفة‪.‬‬

‫ثانيا‪:‬‬

‫‪ .1‬البرنامج األول‪ :‬تأمل البرنامج التالي وقم بطباعت وتنفيذه على احد مترجمات جافلا والحلظ النتلائج‬
‫عند استدعاء المناهج‪:‬‬

‫{ ‪public class Account‬‬

‫;‪protected double balance‬‬

‫‪// Constructor to initialize balance‬‬

‫) ‪public Account( double amount‬‬ ‫{‬

‫;‪balance = amount‬‬ ‫}‬

‫‪// Overloaded constructor for empty balance‬‬

‫)(‪public Account‬‬ ‫{‬

‫;‪balance = 0.0‬‬ ‫}‬

‫{ ) ‪public void deposit( double amount‬‬

‫} ;‪balance += amount‬‬

‫) ‪public double withdraw( double amount‬‬ ‫{‬

‫‪23‬‬
// See if amount can be withdrawn

if (balance >= amount) {

balance -= amount;

return amount; }

else

// Withdrawal not allowed

return 0.0; }

public double getbalance() {

return balance; }}

class AccountDemo {

public static void main(String args[]) {

// Create an empty account

Account my_account = new Account();

// Deposit money

my_account.deposit(250.00);

// Print current balance

System.out.println ("Current balance " +

my_account.getbalance());

// Withdraw money

my_account.withdraw(80.00);

// Print remaining balance

System.out.println ("Remaining balance " +

my_account.getbalance()); }}

:‫ يتم في تعريف الطالب بالمفاهيم التالية‬،‫هذا المثال هام جدا‬

24
‫(البناء االفتراضي والبناء الذي يأخذ عدة معامالت أو معامل واحد)‪.‬‬ ‫‪ .1‬مفهوم البناء بأنواع‬

‫‪ .2‬مفهوم المنهج وأنواع ( الذي يمرر معامالت أو ال يمرر‪ ،‬يعيد قيمة أو ال يعيد قيمة‪... ،‬الخ)‪.‬‬

‫‪ .3‬إنشاء مثيل للصنف من خالل جملة ‪.new‬‬

‫‪ .4‬كيفية استدعاء المناهج داخل ‪.main‬‬

‫ناتج البرنامج‪:‬‬

‫‪Current balance 250.0‬‬

‫‪Remaining balance 170.0‬‬

‫‪ . 2‬البرنامج الثاني‪:‬‬

‫اكتب البرنامج الالزم الستدعاء المنهج الالزم إليجاد الجذر ألتربيعي لألعداد ملن ‪( 55-5‬اسلتخدم المنلاهج‬
‫في الصنف ‪.)Math‬‬

‫‪ ‬احد الحلول المقترحة‬

‫{ ‪public class sqrooot‬‬

‫{)(‪public static void getsqrtoot‬‬

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

‫;))‪System.out.println(Math.sqrt ((double)i‬‬

‫}‬

‫{ )‪public static void main(String[] args‬‬

‫;)(‪getsqrtoot‬‬ ‫}}‬

‫‪ ‬المخرجات‪:‬‬

‫‪2.23606797749979‬‬

‫‪2.449489742783178‬‬

‫‪25‬‬
2.6457513110645907

2.8284271247461903

3.0

……………….

6.782329983125268

6.855654600401044

6.928203230275509

7.0

7.0710678118654755

‫ تأمللل البرنللامج التللالي وقللم بطباعت ل وتنفيللذه علللى احللد مترجمللات جافللا والحللظ خاصللية‬:‫البرنللامج الثالللث‬
:‫التوارث‬

class Box {

double width;

double height;

double depth;

Box() {}

Box(double w, double h, double d) {

width = w;

height = h;

depth = d; }

void getVolume() {

System.out.println("Volume is : " + width * height * depth); }}

class MatchBox extends Box {

double weight;

26
MatchBox() { }

MatchBox(double w, double h, double d, double m) {

super(w, h, d);

weight = m; }

public static void main(String args[]) {

MatchBox mb1 = new MatchBox(10, 10, 10, 10);

mb1.getVolume();

System.out.println("width of MatchBox 1 is " + mb1.width);

System.out.println("height of MatchBox 1 is " + mb1.height);

System.out.println("depth of MatchBox 1 is " + mb1.depth);

System.out.println("weight of MatchBox 1 is " + mb1.weight); }}

:‫المخرجات‬

Volume is : 1000.0

width of MatchBox 1 is 10.0

height of MatchBox 1 is 10.0

depth of MatchBox 1 is 10.0

weight of MatchBox 1 is 10.0

‫ ينفذ الطالب البرنامج ويالحظ النتائج ويقوم بإنشلاء برنلامج شلبي حلول إنشلاء صلنف ملن أي نلوع‬
‫ يقلوم الطاللب‬،‫يختاره ويطبق مفلاهيم الوراثلة والبنلاء واالسلتدعاء للمنلاهج وانشلاء مثليالت الصلنف‬
.‫بإرسال قيم مختلفة عند االستدعاء ومالحظة النتائج‬

27
‫ محددات الوصول للمتغيرات‬+ parsing + ‫استخدام عدة صناديق حوار‬ :‫المختبر الرابع‬
:‫ أهداف المختبر‬:‫أوال‬
:‫تم إعداد هذا المختبر لتمكين الطلبة‬
.‫ التعرف على الصنف ومحددات الوصول إلي المختلفة‬.1

‫ قي تحويل نوع بيانات إلى آخر؟‬parsing ‫ تطبيق مفهوم‬.2

‫ فللي تطبيللق برنللامج ح لواري مللع المسللتخدم‬JOptionPane ‫ أن يوظللف مفهللوم ومنللاهج‬.3


‫لقراءة بيانات وطباعة مخرجات؟‬

:‫ عزيزي الطالب‬:‫ثانيا‬
‫ نفذ البرنامج التالي باستخدام احد مترجمات جافا والحظ النتائج التي تظهر كما هو وارد أسفل‬
:‫البرنامج‬

// Addition.java

// An addition program.

// Java extension packages

import javax.swing.JOptionPane; // import class JOptionPane

public class Addition {

// main method begins execution of Java application

public static void main( String args[] ) {

String firstNumber; // first string entered by user

String secondNumber; // second string entered by user

int number1; // first number to add

int number2; // second number to add

int sum; // sum of number1 and number2

// read in first number from user as a String

firstNumber =

28
JOptionPane.showInputDialog( "Enter first integer" );

// read in second number from user as a String

secondNumber =

JOptionPane.showInputDialog( "Enter second integer" );

// convert numbers from type String to type int

number1 = Integer.parseInt( firstNumber );

number2 = Integer.parseInt( secondNumber );

// add the numbers

sum = number1 + number2;

// display the results

JOptionPane.showMessageDialog(

null, "The sum is " + sum, "Results",

JOptionPane.PLAIN_MESSAGE );

System.exit( 0 ); // terminate application

} // end method main

} // end class Addition

‫ نفذ البرنامج التالي باستخدام احد مترجمات جافا والحظ النتائج التي تظهر كما‬:‫ عزيزي الطالب‬
)‫ ( البرنامج تطبيق حول أنواع محددات الوصول للمتغيرات‬:‫هو وارد أسفل البرنامج‬

public class StaticClass {

public static int x = 0;

private double vat = 14.5;

public static void main(String p[] ) {

byte largestByte=Byte.MAX_VALUE;

StaticClass a = new StaticClass();

29
StaticClass b = new StaticClass();

a.vat=17.0; b.x=13;

System.out.println(a.vat+","+ b.vat);

System.out.println(a.x+","+ b.x);

x=15; a.x=10;b.x=20;

System.out.println(x+ "," +a.x + "," +b.x);

System.out.println("the biggest number is : "+largestByte); }}

:‫المخرجات‬

1..5,14.5

13,13

25,25,25

the biggest number is: 127

30
‫ والمقارنة بينها وبين البرامج التطبيقية‬Applets :‫المختبر الخامس‬
:‫ أهداف المختبر‬:‫أوال‬
:‫تم إعداد هذا المختبر لتمكين الطلبة من‬
.‫التعرف على أنواع البرامج في لغة جافا‬ .1
.Applets ‫المقارنة بين البرامج التطبيقية في لغة جافا والبرامج من نوع‬ .2
.‫ في كتابة طباعة مخرجات تظهر في نافذة رسومية‬Applets ‫توظيف‬ .3
.Applet ‫ المرافق لتطبيق‬html ‫متابعة ملف‬ .4

:‫ عزيزي الطالب‬:‫ثانيا‬
:‫نفذ البرنامج التالي واحصل على النتائج كما هو موضح أسفل البرنامج‬ .1
// WelcomeApplet2.java

// A first applet in Java.

// Java core packages

import java.awt.Graphics; // import class Graphics

// Java extension packages

import javax.swing.JApplet; // import class JApplet

public class WelcomeApplet2 extends JApplet {

// draw text on applet’s background

public void paint( Graphics g ) {

// call inherited version of method paint

super.paint( g );

// draw a String at x-coordinate 25 and y-coordinate 25

g.drawString( "Welcome to Java Programming!", 25, 25 );

} // end method paint

} // end class WelcomeApplet

‫المخرجات‬
31
‫‪ ‬يالحظ الطالب المكونات األساسية للبرنلامج ملن نلوع ‪ Applet‬واسلتبدال الملنهج ‪ main‬بلالمنهج‬
‫‪ ،paint‬كملا يوجل انتبلاه الطاللب إللى المللف‪ html‬اللذي يظهلر فلي نافلذة المتلرجم ومكوناتل كملا‬
‫يلي‪:‬‬

‫>‪<html‬‬

‫>‪<head‬‬

‫>‪</head‬‬

‫>"‪<body bgcolor="000000‬‬

‫>‪<center‬‬

‫‪<applet‬‬

‫‪code‬‬ ‫"‪= "WelcomeApplet2.class‬‬

‫"‪width = "500‬‬

‫"‪height = "300‬‬

‫>‬

‫>‪</applet‬‬

‫>‪</center‬‬

‫>‪</body‬‬

‫>‪</html‬‬

‫‪ .2‬تأمل عزيزي الطالب البرنامج التالي الذي يعمل على طباعة مضاعفات العدد ‪ 2‬في نافذة‬
‫‪ ،Applet‬باستخدام جملة التكرار (الحظ المخرجات أسفل البرنامج) ‪:‬‬

‫;*‪import java.awt.‬‬

‫;*‪import java.applet.‬‬

‫{ ‪public class applet22 extends Applet‬‬

‫{ )(‪public void init‬‬ ‫}‬

‫‪32‬‬
‫{ )‪public void paint(Graphics g‬‬

‫;)‪g.drawString("Welcome to Java!!",30,20‬‬

‫;‪int f=40; int y=50‬‬

‫{)‪for (int i=2; i<=20; i++‬‬

‫;‪g.drawString(" i = "+i,f,y );y=y+15‬‬ ‫}‬ ‫}}‬

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

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

‫احد الحلول المقترحة‪:‬‬

‫{ ‪public class com‬‬

‫;‪int a, b, c‬‬

‫‪public‬‬ ‫{) ‪com (int e, int f,int g‬‬

‫;‪a=e‬‬

‫;‪b=f‬‬

‫;‪c=g‬‬ ‫}‬

‫{)(‪public int getlarge‬‬

‫;‪int d‬‬

‫)‪if (a>b‬‬

‫;‪d=a‬‬

‫‪else‬‬

‫;‪d=b‬‬

‫)‪if (c>d‬‬

‫;‪d=c‬‬

‫;‪return d‬‬ ‫}‬

‫{ )‪public static void main(String[] args‬‬

‫‪34‬‬
com c1 = new com(104,16,54);

System.out.println("The biggest number:"+ c1.getlarge ()); }}

:(Dialog box) ‫ اكتب برنامج لحساب مساحة الدائرة واستخدم صندوق الحوار‬.2

:‫احد الحلول المقترحة‬

import javax.swing.*;

public class ComputeAreaNew {

public static void main(String[]args){

double r2,r1, area;

final double PI = 3.14159; // Declare a constant

r2 = Double.parseDouble (JOptionPane.showInputDialog("Enter the length"));

r1 = Double.parseDouble (JOptionPane.showInputDialog("Enter the width"));

area = r2*r1;

JOptionPane.showMessageDialog(null, "The area is " + area);}}

:‫ بصورة عكسية‬al-quds open university ‫ اكتب برنامج الالزم لطباعة الن‬.3

public class Stringd{

public static void main (String []args){

String a= "al-quds open university"; :‫المخرجات‬


int len = a.length();
ytisrevinu nepo sduq-la
StringBuffer b = new StringBuffer (len);

for (int i=(len-1); i>=0; i--) {

b.append (a.charAt(i));}

System.out.println(b.toString());}}

35
‫استخدام جمل التشعبات والتحكم‬ ‫المختبر السابع‪:‬‬
‫أوال‪ :‬أهداف المختبر‪:‬‬
‫تم إعداد هذا المختبر لتمكين الطلبة من‪:‬‬
‫استخدام جمل التشعبات المختلفة في برامج منوعة‪.‬‬ ‫‪.1‬‬

‫التعرف على وظيفة جملة ‪continue‬‬ ‫‪.2‬‬

‫التعرف على وظيفة جملة ‪break‬‬ ‫‪.3‬‬

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

‫ثانيا‪ :‬عزيزي الطالب‪:‬‬


‫نفللذ البرنللامج التللالي باسللتخدام احللد مترجمللات جافللا والحللظ تللاثير جملللة ‪ continue‬ال لواردة فللي‬ ‫‪.1‬‬

‫البرنامج‪ ،‬ثم الحظ النتائج التي تظهر كما هو وارد أسفل البرنامج‪:‬‬

‫;‪import javax.swing.JOptionPane‬‬

‫{ ‪public class adf‬‬

‫{) ][‪public static void main( String args‬‬

‫;" ‪String output = "Result:‬‬

‫{ )‪for ( int count = 2; count <= 13; count +=2‬‬

‫) ‪if ( count > 7‬‬

‫;‪continue‬‬

‫;" " ‪output += count +‬‬

‫}‬

‫;) ‪JOptionPane.showMessageDialog( null, output‬‬

‫}}‬

‫المخرجات‪:‬‬

‫‪36‬‬
break ‫ نفللذ البرنللامج التللالي باسللتخدام احللد مترجمللات جافللا والحللظ تللأثير جملللة‬:‫عزيللزي الطالللب‬ .2

:‫ ثم الحظ النتائج التي تظهر كما هو وارد أسفل البرنامج‬،‫الواردة في البرنامج‬

import javax.swing.JOptionPane;

public class asdf {

public static void main( String args[] )

{int array[]={1,2,3};

xyz:

for (byte i=0;i<array.length;i++) {

switch(array[i]) {

case 1: System.out.println("Once");break;

case 2: System.out.println("More");break xyz;

case 3: System.out.println("Chance");}}}}

:‫المخرجات‬

Once

More

‫عناصللر مصللفوفة علللى شللكل أعمللدة باسللتخدام صللندوق‬ ‫تأمللل البرنللامج التللالي الللذي يقللوم بعللر‬ .3
:‫الحوار‬

import javax.swing.*;

public class ArrayShow {

// main method begins execution of Java application

public static void main( String args[] ) {

int array[] = { 32, 27, 64, 18, 95, 14, 90, 70, 60, 37 }; // dynamically allocate array

String output = "Subscript\tValue\n";

37
// append each array element's value to String output

for ( int counter = 0; counter < array.length; counter++ )

output += counter + "\t" + array[ counter ] +


"\n";

JTextArea outputArea = new JTextArea();

outputArea.setText( output );

JOptionPane.showMessageDialog( null, outputArea,

"Initializing an Array of int Values",

JOptionPane.INFORMATION_MESSAGE );

System.exit( 0 ); } }

38
‫استخدام الواجهات والحزم‬ ‫المختبر الثامن‪:‬‬
‫أوال‪ :‬أهداف المختبر‪:‬‬
‫تم إعداد هذا المختبر لتمكين الطلبة من‪:‬‬
‫التعرف على الواجهة كمفهوم بياني جديد‪.‬‬ ‫‪.1‬‬

‫تمكين الطالب من تعريف الواجهة ومكوناتها وتنفيذها‪.‬‬ ‫‪.2‬‬

‫التعرف على مفهوم الحزمة وأعضائها‪.‬‬ ‫‪.3‬‬

‫بناء برنامج تطبيقي كامل مستخدما مفهموم الواجهات والحزم‪.‬‬ ‫‪.4‬‬

‫ثانيا‪ :‬عزيزي الطالب‪:‬‬


‫تأمل البرنامج التالي اللذي يقلوم بإنشلاء واجهلة وتعريلف صلنف يوظلف هلذه الواجهلة ويعيلد تعلرف‬ ‫‪.1‬‬
‫كافة مناهجها‪ ،‬وارصد النتائج‪:‬‬

‫{ ‪interface Animal‬‬

‫;)(‪public void eat‬‬

‫};)(‪public void travel‬‬

‫{‪public class II implements Animal‬‬

‫{)(‪public void eat‬‬

‫} ;)"‪System.out.println("Mammal eats‬‬

‫{)(‪public void travel‬‬

‫} ;)"‪System.out.println("Mammal travels‬‬

‫{)(‪public int noOfLegs‬‬

‫} ;‪return 0‬‬

‫{)][‪public static void main(String args‬‬

‫;)(‪II m = new II‬‬

‫;)(‪m.eat‬‬

‫‪39‬‬
m.travel(); }}

:‫النتائج‬

Mammal eats

Mammal travels

:‫ والحظ استخدام مناهج الواجهة واعادة تعريفها من جديد‬،‫أطبع البرنامج التالي وارصد النتائج‬ .2

interface Shape {

public double area();

public double volume();}

public class Point implements Shape {

static int x, y;

public Point() {

x = 5;

y = 10;

public double area() {

return 0; }

public double volume() {

return 0; }

public static void print() {

System.out.println("point: " + x + "," + y); }

public static void main(String args[]) {

Point p = new Point();

p.print();

40
double w=p.area();

double v=p.volume();

System.out.println("area: " + w + " volume is: " + v); }}

:‫المخرجات‬

point: 5,10

area: 0.0 volume is: 0.0

41
‫برمجة االستثناءات‬ ‫المختبر التاسع‪:‬‬
‫أوال‪ :‬أهداف المختبر‪:‬‬
‫تم إعداد هذا المختبر لتمكين الطلبة من‪:‬‬
‫التعرف على االستثناءات كمفهوم جديد في جافا‪.‬‬ ‫‪.1‬‬

‫تطبيق قذف االستثناء والتقاط من خالل برامج تطبيقية منوعة؟‬ ‫‪.2‬‬

‫إعطاء أمثلة برمجية منوعة على برمجة وأنواع االستثناءات‪.‬‬ ‫‪.3‬‬

‫ب ‪.‬‬ ‫أن يقوم الطالب بإنشاء االستثناء الخا‬ ‫‪.4‬‬

‫ثانيا‪ :‬عزيزي الطالب‪:‬‬

‫‪ .1‬أطبع البرنامج التالي في احد مترجمات جافا وقم بتنفيذه‪ ،‬والحظ استخدام االستثناءات فلي عمليلة‬
‫القسمة لتفادي القسمة على صفر (مثال تطبيقي القسمة على صفر)‪:‬‬

‫{ ‪public class Dividezero‬‬

‫{ ‪public static int devide (int x, int y) throws Exception‬‬

‫;)"‪if (y==0) throw new Exception ("can't divide‬‬

‫;‪int z =x/y‬‬

‫;‪return z‬‬ ‫}‬

‫) ][‪public static void main( String args‬‬ ‫{‬

‫{ ‪try‬‬

‫;)‪int z= Dividezero.devide(4,0‬‬ ‫}‬

‫{ )‪catch (Exception e‬‬

‫;))(‪System.out.println("there is an error,,,,"+e.getMessage‬‬ ‫}‬

‫}}‬

‫المخرجات‪:‬‬

‫‪42‬‬
there is an error,,,,can't divide

‫ الحللظ تنفيللذ جمللل االسللتثناء عنللد‬،‫نفللس المثللال السللابق ولكللن تللم اسللتدعاء المللنهج أكثللر مللن مللرة‬ .3
:‫االستدعاء الثاني للمنهج وعدم تنفيذ جملة االستدعاء الثالث‬

public class EX1 {

float a;

float b;

public static float div1(float a, float b)throws Exception{

float r;

if (b==0){

throw new Exception ("invalid number"); }

r=a/b;

return r; }

public static void main(String[] args) {

EX1 taroub=new EX1 ();

try{ System.out.println("Division Okey: "+EX1.div1(45,15));

System.out.println("Invalid division....See the exception"+EX1.div1(45,0));

System.out.println("Hello World!"+EX1.div1(45,3)); }

catch (Exception e){ System.out.println("Invalid division....See the exception:


"+"\n"+e.getMessage());

}}}

:‫المخرجات‬

Division Okey: 3.0

Invalid division....See the exception:

invalid number

43
‫برمجة اإلدخال واإلخراج‬ :‫المختبر العاشر‬
:‫ أهداف المختبر‬:‫أوال‬
:‫تم إعداد هذا المختبر لتمكين الطلبة من‬
.‫تعرف أساسيات اإلدخال واإلخراج في جافا‬ .1

.Console ‫كتابة برامج تطبيقية منوعة فيها عمليات القراءة والكتابة للـ‬ .2

.‫تنفيذ برامج تطبيقية منوعة تتعامل مع ملفات اإلدخال واإلخراج‬ .3

:‫ عزيزي الطالب‬:‫ثانيا‬

:‫مثال تطبيقي لتعريف ملف نصي والكتابة باستخدام مناهج أصناف الكتابة‬ .1

import java.io.BufferedWriter;

import java.io.FileWriter;

import java.io.File;

import java.io.Writer;

import java.io.FileNotFoundException;

import java.io.IOException;

public class WriteTextFileExample {

public static void main(String[] args) {

Writer writer = null;

try {

String text = "This is a text file";

File file = new File("write.txt");

writer = new BufferedWriter(new FileWriter(file));

writer.write(text);

} catch (FileNotFoundException e) {

44
e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally {

try {

if (writer != null) {

writer.close();}

} catch (IOException e) {

e.printStackTrace();}}}}

‫ في الملف‬This is a text file ‫ وطباعة الن‬write.txt ‫ينتج من تنفيذ هذا البرنامج إنشاء ملف‬
.writer.write(text) ‫باستخدام المنهج‬

write.txt ‫ الذي تم تخزين في الملف النصي‬This is a text file ‫مثال تطبيقي لقراءة الن‬ .2
: ‫في التطبيق األول‬

import java.io.BufferedReader;

import java.io.File;

import java.io.FileReader;

import java.io.FileNotFoundException;

import java.io.IOException;

public class ReadTextFileExample {

public static void main(String[] args) {

File file = new File("write.txt");

StringBuffer contents = new StringBuffer();

BufferedReader reader = null;

try {

45
reader = new BufferedReader(new FileReader(file));

String text = null;

// repeat until all lines is read

while ((text = reader.readLine()) != null) {

contents.append(text)

.append(System.getProperty(

"line.separator"));}

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally {

try {

if (reader != null) {

reader.close();}

} catch (IOException e) {

e.printStackTrace();}}

// show file contents here

System.out.println();

System.out.println(contents.toString());}}

‫ مقررات وحساب الوسلط الحسلابي( البرنلامج يوضلح‬5 ‫مثال تطبيقي لقراءة اسم طالب وعالمت في‬ .3
:)BufferedReader ‫االستثناءات وبرمجة اإلدخال باستخدام الصنف‬

import java.io.BufferedReader;

46
import java.io.IOException;

import java.io.InputStreamReader;

public class ReadUserInput2 {

public static void main(String[] args) throws IOException {

double grades[]=new double[5];

double grade;

String g=new String();

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

System.out.println("enter student name:");

g=br.readLine();

System.out.print("give five grades marks: ");

for(int i=0;i<grades.length;i++)

try{ System.out.println("enter grade for student#"+(i+1)+" :");

grade=Double.parseDouble(br.readLine().toString());

grades[i]=grade;

}catch(Exception e){

System.out.println("error happened at grade #"+(i+1)+"!");

i--;}

double sum=0.0;

System.out.println("You have entered the following grades:");

for(int i=0;i<grades.length;i++) { System.out.println(grades[i]);

sum+=grades[i]; } System.out.println("name="+g);

System.out.println("Average="+sum/grades.length);}}

47
‫‪Multithreading‬‬ ‫المختبر الحادي عشر‪:‬‬
‫أوال‪ :‬أهداف المختبر‪:‬‬
‫تم إعداد هذا المختبر لتمكين الطلبة من‪:‬‬
‫إنشاء وتعريف القنوات المتعددة‬ ‫‪.1‬‬
‫التعامل مع القنوات المتعددة والتعرف على مشكلة التزامن وكيفية حلها‪.‬‬ ‫‪.2‬‬
‫تمكين الطالب من تحويل صنف إلى صنف قناة‪.‬‬ ‫‪.3‬‬
‫ثانيا‪:‬عزيزي الطالب‪:‬‬
‫أطبع البرنامج التالي في احد مترجمات جافا وقم بتنفيذه‪ ،‬والحظ استخدام تعدد القنوات ومناهج‬ ‫‪.1‬‬
‫‪.thread‬‬
‫‪class xyz implements Runnable‬‬

‫)(‪{ public void run‬‬

‫;‪{ int i‬‬

‫)‪for (i=1;i<5;i++‬‬

‫;)‪{ System.out.print(i‬‬

‫}}}}{)‪try{Thread.sleep(1000);}catch(Exception e‬‬

‫‪class Th1‬‬

‫{‬

‫)][‪public static void main(String ar‬‬

‫;‪{ xyz k;Thread a,b‬‬

‫;)‪k=new xyz();a=new Thread(k);b=new Thread(k‬‬

‫;)(‪a.start();b.start‬‬

‫}};)"‪System.out.print("X‬‬

‫المخرجات ‪.(or 1X1223344 or 11X223344( X11223344 :‬‬


‫‪.‬‬
‫اكتب برنامجا بلغة جافا مستخدما مفهوم ‪ Multithreading‬تكون نتائجه كالتالي‪:‬‬ ‫‪.2‬‬
‫‪1X23Y1425345‬‬
‫احد الحلول المقترحة‪:‬‬

‫‪48‬‬
class xyz implements Runnable
{ public void run()
{ int i;
for (i=1;i<6;i++)
{ System.out.print(i);
try{Thread.sleep(1000);}catch(Exception e){}}}}
class pqr implements Runnable
{ public void run()
{ xyz t;Thread c;
System.out.print("X");
try{Thread.sleep(3000);}catch(Exception e){}
System.out.print("Y");
t=new xyz();c=new Thread(t);c.start();}}
class kapil{
public static void main(String ar[])
{ xyz k;pqr g;Thread a,b;
k=new xyz();a=new Thread(k);
g=new pqr();b=new Thread(g);
a.start();b.start();}}

49
‫استخدام الواجهات الرسومية والحزم ‪swing + awt‬‬ ‫المختبر الثاني عشر‪:‬‬
‫أوال‪ :‬أهداف المختبر‪:‬‬
‫تم إعداد هذا المختبر لتمكين الطلبة من‪:‬‬
‫فتح نافذة داخل إطار رسومي‪.‬‬ ‫‪.1‬‬

‫التعرف على أبعاد الشاشة وتطبيق استخدامها‪.‬‬ ‫‪.2‬‬

‫استخدام نافذة رسومية للرسم والكتابة عليها‪.‬‬ ‫‪.3‬‬

‫اسللتخدام األشللكال الهندسللية (ثنائيللة البعللد وثالثيللة البعللد)‪ ،‬واألللوان وأنلواع الخطللوط وتطبيقهللا فللي‬ ‫‪.4‬‬
‫واجهة رسومية‪.‬‬

‫ثانيا‪ :‬عزيزي الطالب‪:‬‬

‫مثال بسيط إلنشاء واجهة رسومية (إطار رسومي)‪:‬‬ ‫‪.1‬‬

‫;*‪import javax.swing.‬‬

‫;*‪import java.awt.‬‬

‫;*‪import java.awt.event.‬‬

‫{ ‪public class FrameTest‬‬

‫{)][‪public static void main(String args‬‬

‫;)"طروب انتهى الفصل الثاني"(‪JFrame a=new JFrame‬‬

‫;)‪a.setSize(600,600‬‬

‫;)‪a.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE‬‬

‫;)‪a.setVisible(true‬‬ ‫}}‬

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

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class Frame3 extends JFrame implements ActionListener{

JLabel answer = new JLabel("");

JPanel pane = new JPanel(); // create pane object

JButton pressme = new JButton("Press Me");

Frame3() // the constructor {

super("Event Handler Demo"); setBounds(100,100,300,200);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Container con = this.getContentPane(); // inherit main frame

con.add(pane); pressme.setMnemonic('P'); // associate hotkey

51
pressme.addActionListener(this); // register button listener

pane.add(answer); pane.add(pressme); pressme.requestFocus();

setVisible(true); // make frame visible }

// here is the basic event handler

public void actionPerformed(ActionEvent event) {

Object source = event.getSource();

if (source == pressme) {

answer.setText("Button pressed!");

JOptionPane.showMessageDialog(null,"I love java!","Message Dialog",

JOptionPane.PLAIN_MESSAGE); setVisible(true); // show something } }

public static void main(String args[]) {new Frame3();}}

:‫النتائج‬

‫ الذي يوضلح عمليلة إدخلال علدد ملا وبعلد الضلغط‬ActionListener ‫مثال تطبيقي حول الواجهة‬ .3
:‫على زر زيادة يتم زيادة دورية إلى حين الضغط على زر خروج من النافذة‬

import java.awt.BorderLayout;

import java.awt.event.ActionEvent;

import javax.swing.JButton;

52
import javax.swing.JTextField;

import java.awt.Container;

import java.awt.event.ActionListener;

import javax.swing.JFrame;

public class ListeningExample implements ActionListener {

private JButton incr;

private JButton quit;

private JTextField field;

private ListeningExample(JButton i, JButton q, JTextField f) {

incr = i; quit = q; field = f; }

public void actionPerformed(ActionEvent e) {

if(e.getSource() == incr) {

int i = Integer.parseInt(field.getText());

field.setText("" + (i + 1));

} else if(e.getSource() == quit) {

System.exit(0); } }

public static void main(String[] args) {

JButton incrButton = new JButton("Increment");

JButton quitButton = new JButton("Quit");

JTextField numberField = new JTextField();

ListeningExample listener = new ListeningExample(incrButton,

quitButton, numberField);

incrButton.addActionListener(listener);

quitButton.addActionListener(listener);

JFrame frame = new JFrame("Listening Example");

53
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Container contents = frame.getContentPane();

contents.add(incrButton, BorderLayout.NORTH);

contents.add(numberField, BorderLayout.CENTER);

contents.add(quitButton, BorderLayout.SOUTH);

frame.pack();

frame.setVisible(true); } }

‫ حللاول عزيللزي الطالللب إجلراء التعللديالت علللى نافللذة المخرجللات(تغيير نللوع الخللط للنصللو‬
.)‫ إلى يسار الشاشة‬Quit ‫وتغيير موقع زر‬

:labels ‫مثال تطبيقي حول استخدام كائنات نصية‬ .4

import java.awt.*;

import java.awt.event.*;

// Java extension packages

import javax.swing.*;

public class LabelTest extends JFrame {

private JLabel label1, label2, label3;

// set up GUI

public LabelTest(){

super( "Testing JLabel" );

// get content pane and set its layout

54
Container container = getContentPane();

container.setLayout( new FlowLayout() );

// JLabel constructor with a string argument

label1 = new JLabel( "‫تجريبي اول‬ ‫;) "ن‬

label1.setToolTipText( "This is label1" );

container.add( label1 );

// JLabel constructor with string, Icon and

// alignment arguments

Icon bug = new ImageIcon( "bird.jpg" );

label2 = new JLabel( "‫تجريبي الثاني‬ ‫" ن‬,

bug, SwingConstants.LEFT );

label2.setToolTipText( "This is label2" );

container.add( label2 );

// JLabel constructor no arguments

label3 = new JLabel();

label3.setText( "Label with icon and text at bottom" );

label3.setIcon( bug );

label3.setHorizontalTextPosition( SwingConstants.CENTER );

label3.setVerticalTextPosition( SwingConstants.BOTTOM );

label3.setToolTipText( "This is label3" );

container.add( label3 );

setSize( 275, 170 );

setVisible( true );}

// execute application

55
public static void main( String args[] ){

LabelTest application = new LabelTest();

application.setDefaultCloseOperation(

JFrame.EXIT_ON_CLOSE );}

} // end class LabelTest

:‫في النافذة‬ ‫ مع طباعة ن‬،‫مثال تطبيقي لرسم أشكال هندسية بتعبئة وبدون تعبئة‬ .5

import java.awt.*;

import java.awt.event.*;

// Java extension packages

import javax.swing.*;

public class LinesRectsOvals extends JFrame {

// set window's title bar String and dimensions

public LinesRectsOvals(){

super( "Drawing lines, rectangles and ovals" );

setSize( 400, 165 );

setVisible( true );}

// display various lines, rectangles and ovals

public void paint( Graphics g ){

// call superclass's paint method

super.paint( g );

g.setColor( Color.red );

g.drawLine( 5, 30, 350, 30 );

g.setColor( Color.blue );

g.drawRect( 5, 40, 90, 55 );

56
g.fillRect( 100, 40, 90, 55 );

g.setColor( Color.cyan );

g.fillRoundRect( 195, 40, 90, 55, 50, 50 );

g.drawRoundRect( 290, 40, 90, 55, 20, 20 );

g.setColor( Color.yellow );

g.draw3DRect( 5, 100, 90, 55, true );

g.fill3DRect( 100, 100, 90, 55, false );

g.setColor( Color.magenta );

g.drawOval( 195, 100, 90, 55 );

g.fillOval( 290, 100, 90, 55 );

g.setColor(Color.green);

g.drawString(" 055 ,555 ,"‫};)انتهى الفصل الثاني‬

// execute application

public static void main( String args[] ){

LinesRectsOvals application = new LinesRectsOvals();

application.setDefaultCloseOperation(

JFrame.EXIT_ON_CLOSE );}

} // end class LinesRectsOvals

57
: ‫ ومناهج‬JColorChooser ‫مثال تطبيقي الستخدام الصنف‬ .0

import java.awt.*;

import java.awt.event.*;

// Java extension packages

import javax.swing.*;

public class ShowColors2 extends JFrame {

private JButton changeColorButton;

private Color color = Color.lightGray;

private Container container;

// set up GUI

public ShowColors2(){

super( "Using JColorChooser" );

container = getContentPane();

container.setLayout( new FlowLayout() );

// set up changeColorButton and register its event handler

changeColorButton = new JButton( "Change Color" );

changeColorButton.addActionListener(

// anonymous inner class

new ActionListener() {

// display JColorChooser when user clicks button

public void actionPerformed( ActionEvent event ){

color = JColorChooser.showDialog(

ShowColors2.this, "Choose a color", color );

// set default color, if no color is returned

58
if ( color == null )

color = Color.lightGray;

// change content pane's background color

container.setBackground( color );}

} // end anonymous inner class

); // end call to addActionListener

container.add( changeColorButton );

setSize( 400, 130 );

setVisible( true );}

public void paint( Graphics g ){

// call superclass's paint method

super.paint( g );

g.drawString("45,05 ,"‫};)اضغط هنا لتغيير اللون‬

// execute application

public static void main( String args[] ){

ShowColors2 application = new ShowColors2();

application.setDefaultCloseOperation(

JFrame.EXIT_ON_CLOSE );}

} // end class ShowColors2

59
:‫النتائج‬

‫ عزيللزي الطالللب نفللذ‬: ‫ ورسللم أشللكال هندسللية داخل ل‬JFrame ‫مثللال تطبيقللي بسلليط علللى إنشللاء‬ ..
: ‫ قم بتغيير أبعاد الكائنات الرسومية‬،‫البرنامج وارصد النتائج‬

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class TEST {

public static void main(String[] args) {

JFrame j=new JFrame();

j.setBackground(Color.BLUE);

j.setTitle("WELCOME TO JAVA PROGRAMMING");

j.setVisible(true);

60
j.setSize(200,400);

A panel = new A();

Container ContentPane = j.getContentPane();

ContentPane.add(panel); }}

class A extends JPanel {

public void paintComponent (Graphics g) {

super.paintComponent(g);

g.drawString ("AI-QUDS OPEN UNIVEWRSITY", 200, 250);

g.setColor (Color.gray);

g.draw3DRect (25, 10, 50, 75, true);

g.draw3DRect (25, 110, 50, 75, false);

g.fill3DRect (100, 10, 50, 75, true);

g.fill3DRect (100, 110, 50, 75, false); }}

61
‫أمثلة تطبيقية منوعة‬ :‫المختبر الثالث عشر‬
:‫ أهداف المختبر‬:‫أوال‬
:‫تم إعداد هذا المختبر لتمكين الطلبة من‬
.‫تطبيق كافة األساسيات ومهارات جافا التي درسها في المقرر‬ .1

‫اســتخدام عــدة مهــارات ومفــاهيم أساســية فــي تطبيــق برمجــي كامــل لحــل مســالة أو م ــكلة تواجه ـ فــي‬ .2
.‫الحياة اليومية‬

:‫ عزيزي الطالب‬:‫ثانيا‬

‫ اكتب برنامج الالزم لتحويل من الدرجة الفهرنهاتية إلى الدرجة المئوية باستخدام مهارات الواجهلات‬.1
:‫الرسومية‬

import java.awt.BorderLayout;

import java.awt.event.ActionEvent;

import javax.swing.JButton;

import javax.swing.JLabel;

import javax.swing.JTextField;

import java.awt.Container;

import java.awt.event.ActionListener;

import javax.swing.JFrame;

import javax.swing.JPanel;

public class TempConvert implements ActionListener {

private JTextField fahr;

private JTextField cels;

private TempConvert(JTextField fahr, JTextField cels) {

this.fahr = fahr; this.cels = cels; }

62
public void actionPerformed(ActionEvent e) {

if(e.getSource() == fahr) {

double temp = Double.parseDouble(fahr.getText());

double val = (temp - 32) / 1.8;

cels.setText("" + Math.rint(val * 100) / 100);

} else if(e.getSource() == cels) {

double temp = Double.parseDouble(cels.getText());

double val = 1.8 * temp + 32;

fahr.setText("" + Math.rint(val * 100) / 100); } }

public static void main(String[] args) {

JTextField fahrField = new JTextField(8);

JTextField celsField = new JTextField(8);

JPanel fahrPanel = new JPanel();

fahrPanel.add(new JLabel("Fahrenheit:"));

fahrPanel.add(fahrField);

JPanel celsPanel = new JPanel();

celsPanel.add(new JLabel("Celsius:"));

celsPanel.add(celsField);

TempConvert listener = new TempConvert(fahrField, celsField);

fahrField.addActionListener(listener);

celsField.addActionListener(listener);

JFrame frame = new JFrame("Temperature Conversion");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Container contents = frame.getContentPane();

contents.add(fahrPanel, BorderLayout.NORTH);

63
contents.add(celsPanel, BorderLayout.SOUTH);

frame.pack();

frame.setVisible(true); } }

‫( كما في‬JFrame) ‫ في نافذة رسومية‬ok ‫ والزر‬hello world ‫ اكتب برنامج إلظهار الن‬.2
:‫الشكل التالي‬

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class HelloWorldGUI2 {

private static class HelloWorldDisplay extends JPanel {

public void paintComponent(Graphics g) {

super.paintComponent(g);

g.drawString( "Hello World!", 20, 30 ); } }

private static class ButtonHandler implements ActionListener {

64
public void actionPerformed(ActionEvent e) {

System.exit(0); } }

public static void main(String[] args) {

HelloWorldDisplay displayPanel = new HelloWorldDisplay();

JButton okButton = new JButton("OK");

ButtonHandler listener = new ButtonHandler();

okButton.addActionListener(listener);

JPanel content = new JPanel();

content.setLayout(new BorderLayout());

content.add(displayPanel, BorderLayout.CENTER);

content.add(okButton, BorderLayout.SOUTH);

JFrame window = new JFrame("GUI Test");

window.setContentPane(content);

window.setSize(250,100);

window.setLocation(100,100);

window.setVisible(true); } }

‫ تظهر في خطوط ومتوازي مستطيالت (بعدة أبعاد تختارها أنت‬Applet ‫ اكتب برنامج إلنشاء‬.3
:‫وبتعبئة وبدون تعبئة لمتوازي المستطيالت) حسب الشكل التالي‬

65
:‫ احد الحلول المقترحة‬

import java.awt.*;

import java.applet.*;

public class Lines extends Applet {

public void init() {

setBackground (Color.black);

setForeground(Color.green); }

public void paint(Graphics g) {

g.drawLine(0, 0, 100, 100);

g.drawLine(0, 100, 100, 0);

g.drawLine(40, 25, 250, 180);

g.drawLine(75, 90, 400, 400);

g.drawLine(20, 150, 400, 40);

g.drawLine(5, 290, 80, 19);

g.drawLine (5, 75, 5, 75);

g.drawLine (50, 5, 50, 5);

g.drawRect(10, 10, 60, 50);

g.fillRect(100, 10, 60, 50);

g.drawRoundRect(190, 10, 60, 50, 15, 15);

g.fillRoundRect(70, 90, 140, 100, 30, 40);

g.drawRect(10, 10, 60, 50);

66
g.fillRect(100, 10, 60, 50);

g.drawRoundRect(190, 10, 60, 50, 15, 15);

g.fillRoundRect(70, 90, 140, 100, 30, 40); }}

‫ بحيث يكون لدي القدرة عللى التمييلز بلين البلرامج التطبيقيلة‬init ‫ والمنهج‬paint ‫يالحظ الطالب المنهج‬
.‫ قي لغة جافا‬Applet ‫وبرامج‬

Programming Language ‫ اكتب برنامج بلغة جافا إليجاد عدد مرات تكرار الحرف في ن‬.4
‫ التعداد يشمل تكرار الحرف الكبير أو الصغير؟‬،String ‫ يتم إسناده داخل البرنامج إلى‬Java

:‫احد الحلول المقترحة‬

public class ahmad1 {

public static void main(String args[]) {

String input = "Programming Language Java";

for (int j=65; j<=90; j++){

int charCount = 0;

char c=(char)j;

for(int i =0 ; i<input.length(); i++){

if((input.charAt(i) ==c) |(input.charAt(i) ==Character.toLowerCase(c))) {

charCount++; } }

System.out.println("count of character "+ c + " or "+ Character.toLowerCase(c)+ "


on String:" + charCount); } }}

:‫المخرجات‬

count of character A or a on String:5

count of character B or b on String:0

count of character C or c on String:0

67
count of character D or d on String:0

count of character E or e on String:1

count of character F or f on String:0

count of character G or g on String:4

count of character H or h on String:0

count of character I or i on String:1

count of character J or j on String:1

count of character K or k on String:0

count of character L or l on String:1

count of character M or m on String:2

count of character N or n on String:2

count of character O or o on String:1

count of character P or p on String:1

count of character Q or q on String:0

count of character R or r on String:2

count of character S or s on String:0

count of character T or t on String:0

count of character U or u on String:1

count of character V or v on String:1

count of character W or w on String:0

count of character X or x on String:0

count of character Y or y on String:0

count of character Z or z on String:0

68
:‫اكتب برنامج بلغة جافا إلظهار النافذة التالية‬ .5

)‫ (الحظ تعريف اإلطار داخل بناء الصنف‬:‫احد الحلول المقترحة‬

import javax.swing.*;

public class FrameSimple{

JFrame frame1=new JFrame();

FrameSimple () {

frame1.setSize(400,700);//width and hieght

frame1.setLocation(10,20);//x and y

frame1.setVisible(true);

frame1.setTitle("First Frame I can create!!!!!!!!");

frame1.setResizable(true); }

public static void main(String argv[]) {

69
FrameSimple app=new FrameSimple (); }}

:Math ‫ مثال تطبيقي على استخدام مناهج الصنف‬.0

public class Main {

public static void main(String[] args) {

int i = 7;

int j = -9;

double x = 72.3;

double y = 0.34;

System.out.println("i is " + i);

System.out.println("j is " + j);

System.out.println("x is " + x);

System.out.println("y is " + y);

// The absolute value of a number is equal to

// the number if the number is positive or

// zero and equal to the negative of the number

// if the number is negative.

System.out.println("|" + i + "| is " + Math.abs(i));

System.out.println("|" + j + "| is " + Math.abs(j));

System.out.println("|" + x + "| is " + Math.abs(x));

System.out.println("|" + y + "| is " + Math.abs(y));

// Truncating and Rounding functions

// You can round off a floating point number

// to the nearest integer with round()

System.out.println(x + " is approximately " + Math.round(x));

70
System.out.println(y + " is approximately " + Math.round(y));

// The "ceiling" of a number is the

// smallest integer greater than or equal to

// the number. Every integer is its own

// ceiling.

System.out.println("The ceiling of " + i + " is " + Math.ceil(i));

System.out.println("The ceiling of " + j + " is " + Math.ceil(j));

System.out.println("The ceiling of " + x + " is " + Math.ceil(x));

System.out.println("The ceiling of " + y + " is " + Math.ceil(y));

// The "floor" of a number is the largest

// integer less than or equal to the number.

// Every integer is its own floor.

System.out.println("The floor of " + i + " is " + Math.floor(i));

System.out.println("The floor of " + j + " is " + Math.floor(j));

System.out.println("The floor of " + x + " is " + Math.floor(x));

System.out.println("The floor of " + y + " is " + Math.floor(y));

// Comparison operators

// min() returns the smaller of the two arguments you pass it

System.out.println("min(" + i + "," + j + ") is " + Math.min(i,j));

System.out.println("min(" + x + "," + y + ") is " + Math.min(x,y));

System.out.println("min(" + i + "," + x + ") is " + Math.min(i,x));

System.out.println("min(" + y + "," + j + ") is " + Math.min(y,j));

// There's a corresponding max() method

// that returns the larger of two numbers

71
System.out.println("max(" + i + "," + j + ") is " + Math.max(i,j));

System.out.println("max(" + x + "," + y + ") is " + Math.max(x,y));

System.out.println("max(" + i + "," + x + ") is " + Math.max(i,x));

System.out.println("max(" + y + "," + j + ") is " + Math.max(y,j));

// The Math library defines a couple

// of useful constants:

System.out.println("Pi is " + Math.PI);

System.out.println("e is " + Math.E);

// Trigonometric methods

// All arguments are given in radians

// Convert a 45 degree angle to radians

double angle = 45.0 * 2.0 * Math.PI/360.0;

System.out.println("cos(" + angle + ") is " + Math.cos(angle));

System.out.println("sin(" + angle + ") is " + Math.sin(angle));

// Inverse Trigonometric methods

// All values are returned as radians

double value = 0.707;

System.out.println("acos(" + value + ") is " + Math.acos(value));

System.out.println("asin(" + value + ") is " + Math.asin(value));

System.out.println("atan(" + value + ") is " + Math.atan(value));

// Exponential and Logarithmic Methods

// exp(a) returns e (2.71828...) raised

// to the power of a.

System.out.println("exp(1.0) is " + Math.exp(1.0));

System.out.println("exp(10.0) is " + Math.exp(10.0));

72
System.out.println("exp(0.0) is " + Math.exp(0.0));

// log(a) returns the natural

// logarithm (base e) of a.

System.out.println("log(1.0) is " + Math.log(1.0));

System.out.println("log(10.0) is " + Math.log(10.0));

System.out.println("log(Math.E) is " + Math.log(Math.E));

// pow(x, y) returns the x raised

// to the yth power.

System.out.println("pow(2.0, 2.0) is " + Math.pow(2.0,2.0));

System.out.println("pow(10.0, 3.5) is " + Math.pow(10.0,3.5));

System.out.println("pow(8, -1) is " + Math.pow(8,-1));

// sqrt(x) returns the square root of x.

for (i=0; i < 10; i++) {

System.out.println(

"The square root of " + i + " is " + Math.sqrt(i)); }

// Finally there's one Random method

// that returns a pseudo-random number

// between 0.0 and 1.0;

System.out.println("Here's one random number: " + Math.random());

System.out.println("Here's another random number: " + Math.random()); }}

:‫المخرجات‬

j is -9

x is 72.3

y is 0.34

|7| is 7

73
|-9| is 9

|72.3| is 72.3

|0.34| is 0.34

72.3 is approximately 72

0.34 is approximately 0

The ceiling of 7 is 7.0

The ceiling of -9 is -9.0

The ceiling of 72.3 is 73.0

The ceiling of 0.34 is 1.0

The floor of 7 is 7.0

The floor of -9 is -9.0

The floor of 72.3 is 72.0

The floor of 0.34 is 0.0

min(7,-9) is -9

min(72.3,0.34) is 0.34

min(7,72.3) is 7.0

min(0.34,-9) is -9.0

max(7,-9) is 7

max(72.3,0.34) is 72.3

max(7,72.3) is 72.3

max(0.34,-9) is 0.34

Pi is 3.141592653589793

e is 2.718281828459045

cos(0.7853981633974483) is 0.7071067811865476

sin(0.7853981633974483) is 0.7071067811865475

74
acos(0.707) is 0.7855491633997437

asin(0.707) is 0.785247163395153

atan(0.707) is 0.6154085176292563

exp(1.0) is 2.7182818284590455

exp(10.0) is 22026.465794806718

exp(0.0) is 1.0

log(1.0) is 0.0

log(10.0) is 2.302585092994046

log(Math.E) is 1.0

pow(2.0, 2.0) is 4.0

pow(10.0, 3.5) is 3162.2776601683795

pow(8, -1) is 0.125

The square root of 0 is 0.0

The square root of 1 is 1.0

The square root of 2 is 1.4142135623730951

The square root of 3 is 1.7320508075688772

The square root of 4 is 2.0

The square root of 5 is 2.23606797749979

The square root of 6 is 2.449489742783178

The square root of 7 is 2.6457513110645907

The square root of 8 is 2.8284271247461903

The square root of 9 is 3.0

Here's one random number: 0.1508387269122793

Here's another random number: 0.5343659672214046

75
‫ اكتب برنامج بلغة جافا الظهار النافذة التالية والتي تقوم باستقبال رقمين ثم اظهار ناتج الجمع في‬..
:Applet ‫نافذة‬

:‫احد الحلول المقترحة‬

import java.awt.*;

import java.applet.*;

public class tt extends Applet{

TextField T1,T2;

public void init() {

T1 = new TextField(10);

T2 = new TextField(10);

add(T1);

add(T2);

T1.setText("0");

T2.setText("0"); }

public void paint(Graphics g) {

int a, b, result;

String str;

76
g.drawString("Enter Number in TextField to Find addition of 2 No ",10,50);

g.setColor(Color.red);

str=T1.getText();

a=Integer.parseInt(str);

str=T2.getText();

b=Integer.parseInt(str);

result=a+b;

g.drawString("After Addition the Result is : "+result,10,80);

showStatus("Addition of 2 Numbers"); }

public boolean action(Event e, Object o){

repaint();

return true; }}

77
‫ملحق ‪1‬‬

‫إرشادات استخدام محرر البرمجة ‪Jcreator‬‬

‫‪78‬‬
‫أوال‪ :‬صندوق التعليمات الملُسلاعدة للمستخدم‪:‬‬

‫‪ ‬يظهر مع كل مرة يتم فيها تشغيل المحرر‪,‬‬


‫و يتم فيها ذكر معلومة واحدة كل مرة‬
‫تساعد المستخدم (المبرمج) على التعامل‬
‫بسهولة أكبر مع المحرر‪.‬‬

‫‪ ‬يمكن معرفة المعلومات التالية بالضغط‬


‫على زر ‪ next tip‬أو إغالق من خالل‬
‫‪.close‬‬

‫‪ ‬لعدم إظهار الصندوق في المرات التالية قم بحذف اإلشارة في صندوق االختيار‪.‬‬

‫إلنشلاء برنامج جديد‪:‬‬

‫‪ ‬من القائمة ملف ( ‪)file‬‬

‫‪ ‬نختار جديد (‪)New‬‬

‫‪ ‬نختار مشلروع (‪)Project‬‬

‫‪ ‬ثم تتبع الخطوات الموضحة في‬


‫الشرائح القادمة‬

‫لفتح مشروع سابق نستخدم الخيار فتح‬


‫(‪.)Open‬‬

‫‪79‬‬
‫‪ ‬إلنشلاء برنامج جديد‪:‬‬

‫‪ ‬نختار النوع ‪Basic Java‬‬


‫‪Application‬‬

‫‪ ‬ثم نضغط على التالي (‪)next‬‬

‫‪ ‬ثم نكتب اسم المشلروع في الخانة‬

‫األولى‪.‬‬

‫‪ ‬ثم نضغط انتهاء (‪)Finish‬‬

‫‪ ‬إلنشلاء برنامج جديد‪:‬‬

‫‪ ‬نتابع‪ ،،،،،،،‬سيتطلب إنشاء المشروع‬


‫ثوان‪.‬‬ ‫بع‬

‫‪ ‬اضغط بعد ذلك انتهاء مرة أخر ‪.‬‬

‫‪80‬‬
‫الكود البرمجي من األخطاء‪:‬‬ ‫‪ ‬لفح‬

‫‪ ‬نختار القائمة بناء (‪)Build‬‬

‫‪ ‬ثم نختار الخيار (‪ )Build Project‬أو‬


‫نضغط المفتاح ‪ F7‬من لوحة المفاتيلح‪.‬‬

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

‫‪ ‬لتنفيذ البرنامج و مشاهدة الناتج‪:‬‬

‫‪ ‬نختار القائمة ‪Run‬‬

‫‪ ‬ثم نختار الخيار ‪Run Project‬‬

‫‪ ‬في حال كان البرنامج بال أخطاء و ل مخرجات ستظهر في‬


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

‫‪81‬‬
‫‪ ‬لفتح ملف من الملفات التي تم‬
‫التفاعل معها مؤخرا‪.‬‬

‫‪ ‬من القائمة ملف (‪)File‬‬

‫‪ ‬نختار الخيار ( ‪Recent‬‬


‫‪)files‬‬

‫‪ ‬ثم نختار الملف المقصود‬


‫منهم‪.‬‬

‫‪82‬‬
‫ملحق ‪2‬‬

‫إرشادات استخدام أداة التطوير ‪NetBeans‬‬

‫‪83‬‬
‫ومتعلددة المنصلات تصللح لعلدد كبيلر ملن التطبيقلات ‪.‬ومتلرجم جافلا يقلوم‬ ‫لغة جافا هي لغة متعلددة األغل ار‬
‫بإنتاج ملفات في شكل ‪ byte code‬وهو يختلف عن الملفات التنفيذية التي تنتج عن لغات البرمجة األخلر‬
‫مثلل سلي وباسلكال ‪.‬وتحتلاج البلرامج المكتوبلة بلغلة جافلا إللى منصلة فلي أنظملة التشلغيل المختلفلة لتلتمكن‬
‫تسلمى آللة جافلا االفتراضلية ‪.Java Run-time‬أو‬
‫برامجهلا ملن العملل فلي هلذه األ نظملة ‪.‬وهلذه المنصلة ُ‬
‫‪JVM‬أو إختصا ار بل‪. Java Virtual Machine‬‬
‫تتوفر هذه المنصة في عدد كبير من أنظمة التشغيل‪ ،‬وقبل تشغيل برنلامج جافلا البلد ملن التأكلد ملن وجودهلا ‪.‬‬
‫وكل نظام تشغيل يحتاج آللة افتراضية خاصة ب ‪.‬مثال نظام ويندوز ‪ 32‬بت يحتلاج آلللة افتراضلية مخصصلة‬
‫لويندوز ‪ 32‬بت‪ ،‬وويندوز ‪ 64‬بت يحتاج آللة افتراضية ‪ 64‬بت ‪.‬وهكذا‬
‫مثال السم ملف لتثبيت آلة جافا االفتراضية لنظام ويندوز ‪ 64‬بت‪:‬‬
‫‪Jdk-6u16-windows-x64.exe‬‬
‫يسمى جافا‪. 6‬‬
‫يمثل نسخة جافا ‪ 1.6‬أو ما ُ‬
‫وهو ُ‬
‫وهذه اسم حزمة تحتوي على اآللة االفتراضية لجافا ‪ 7‬لنظام أوبونتو ‪ 32‬بت‪:‬‬
‫‪Openjdk-7-jre‬‬

‫يعتبر ‪ Netbeans‬من أفضل أدوات التطوير للغة جافا‪ ،‬وقد تمت كتابتها باستخدام لغة جافا نفسها بواسطة‬
‫شركة أوراكل صاحبة تلك اللغة‪.‬‬
‫يمكن استخدام هذه األداة لتطوير برامج بلغات برمجة أخر غير الجافا مثل برامج ‪ php‬و ‪ ،c++‬توجد أداة‬
‫ُ‬
‫تطلوير أخلر مشلهورة و هلي‪ ، Eclipse‬وهلي أخلف وأسلرع ملن أداة التطلوير‪ ، NetBeans‬وفيهلا إمكانيلة‬
‫لبرمجة األ ندرويد‪.‬‬

‫أول برنامج في لغة جافا في نافذة ‪Netbeans‬‬

‫‪84‬‬
‫المكونات الرئيسية لنافذة ‪NetBeans IDE‬‬

‫‪85‬‬
‫إضافة فواصل إلى برنامجك ‪NetBeans IDE‬‬

‫‪86‬‬
‫ملحق ‪3‬‬

‫إرشادات ربط برنامج جافا بقاعدة البيانات‬

‫‪87‬‬
‫نختار ربط برنامج جافا بقاعدة البيانات ‪ ،Access‬وذلك لتوفرها في برامج األوفليس للد الجميلع‪ ،‬ويمكلن‬
‫أن يكون العمل في برنامج ‪ Net Beans‬أو أي برنامج آخر باإلضافة إلى برنامج األكسس‪.‬‬

‫نفرض أن لدينا قاعدة بيانات باسم ‪ DB‬وفيها جدول باسم ‪ ، Mouses‬كما في الشكل التالي‪:‬‬ ‫‪.1‬‬

‫آلن نفتح لوحلة اللتحكم ‪ Control Panel‬ملن زر أبلدا‪ ،‬بعلد ذللك نلذهب إللى ‪System and‬‬ ‫‪.2‬‬
‫‪ ،Security‬ثم نختار ‪ ،Administrative tools‬ونفتح ‪: )Data Source (ODBC‬‬

‫‪88‬‬
‫نضغط على زر ‪ add‬لكي نضيف قاعدة البيانات اللي النظلام ‪ ODBC‬ويلتم التعلرف عليهلا ملن‬ ‫‪.3‬‬
‫خالل ‪ ،NetBeans‬بعد الضغط على زر ‪ ،add‬نقوم باختيار ‪Microsoft Access Driver (*.mdb,‬‬
‫‪.)*accdb‬‬

‫‪89‬‬
‫نقلوم بكتابلة اسلم قاعلدة البيانللات واللذي سليكون كلرابط لقاعلدة البيانللات (االسلم يكلون محفلوظ فللي‬ ‫‪.4‬‬
‫‪ ODBC‬وال يشترط أن يكون نفس اسم قاعدة البيانات األصلي)‪ ،‬نقوم بتحديد مكلان قاعلدة البيانلات‪،‬بعلد‬
‫ذلك نضغط ‪ ،ok‬اآلن تم إضافة قاعدة البيانات إلى ‪.ODBC‬‬
‫نذهب إلى البرنامج الذي نريد توصيله بقاعدة البيانات‪،‬‬ ‫‪.5‬‬

‫اوالً‪ :‬وسنعمل على طريقة استيراد جدول وإظهاره كامال‪ .‬فيما يلي الخطوات التفصيلية‪:‬‬

‫نقوم بعمل وتصميم اإلطار التالي ‪:‬‬

‫نتقل إلى وضع‪ ، Source‬ونقوم باستدعاء المكتبة الخاصة بالتعامل مع ‪ ،;*Import java.sql ،SQL‬بعدد للد‬ ‫‪.1‬‬
‫نقوم بإضافة الدالة (‪ ) Method‬التالية ‪:‬‬

‫‪90‬‬
‫وفيمللا يلللي شللرح لجمللل البرنللامج‪ :‬نقللوم بتعريللف المتغيللر ‪ con‬ليقللوم بللربط قاعللدة البيانللات التللي انشللأناها‪ ،‬نقللوم‬ ‫‪.2‬‬
‫بتعريلللف المتغيلللر ‪ sql‬ليقلللوم بتنفيلللذ جملللل االسلللتعالم‪ ،‬نقلللوم بتعريلللف المتغيلللر ‪ ، search‬نعلللرف المتغيلللر ‪ rs‬لحفلللظ نتلللائج‬
‫االستعالم (البيانات )‪ ،‬نقلوم بإنشلاء الداللة ‪ ،connDB‬نسلتخدم ‪ try – catch‬للتحلذير ملن وجلود أي خطلأ‪ Class ،‬هلي‬
‫مكتبة خاصة بلغة الجافا و ‪ forName‬هي خاصية تابعة في الكالس نستخدمها لتقوم باستدعاء ‪ JBDC‬لتلتم عمليلة ربلط‬
‫الجافا بقاعدة البيانات‪ ،‬االتصال بقاعدة البيانات عن طريق الرابط ‪ DB‬الذي انشأناه‪ ،‬إنشاء جمل االستعالم وتطبيقها داخلل‬
‫المشروع‪ ،‬تنفيلذ جملل االسلتعالم المطلوبلة‪ ،‬تقلوم بإنشلاء نافلذة لكلي تتأكلد أن االتصلال قلد تلم بنجلاح‪ ،‬نعلرف مخلزن للجلدول‬
‫وحيللث أن الجللدول ال يللتم تعبئتل إال عللن طريللق مصللفوفة والمصللفوفة تأخللذ البيانللات مللن ‪ DB‬وتقللوم بتعبئللة الجللدول‪ ،‬نجعللل‬
‫الجدول يأخذ بيانات من ‪ ،dtm‬نضيف عمودين ف ‪ dtm‬والذي سلينقل البيانلات إللى الجلدول ونسلمي األول ‪ ID‬والثلاني‬
‫‪ ،Brand‬بعللد جلللب البيانللات مللن ‪ DB‬وحفظهللا فللي ‪ ، rs‬إذا كللان هنالللك سللطر تللالي نفللذ اآلتللي‪ ،‬يقللوم بالبللدء مللن الصللف‬
‫األول‪ ،‬يقوم بإنشلاء تكلرار إلدخلال البيانلات فلي ‪ ،dtm‬يقلوم بلالرجوع إللى الصلف األول‪ ،‬إذا كانلت ‪ DB‬خاليلة فسليتم إبقلاء‬
‫الحقول المحددة خالية‪ ،‬في حال وجود خطأ ‪ ,‬سيتم إظهار رسالة مبينة الخطأ‪ ،‬ثم أخيراً الخروج من البرنامج‪.‬‬
‫كود الزر‪ : Connect‬عند الضغط عليه يتم استدعاء الدالة ‪ connDB‬وبدأ االتصال بقاعدة البيانات‪:‬‬ ‫‪.3‬‬

‫‪91‬‬
‫كددددود الددددزر ‪ : Search:‬فددددي حالددددة أن المسددددتخدم يريددددد البحددددي فددددي الجدددددول يقددددوم بالكتابددددة فددددي الحقددددل‬ ‫‪.4‬‬
‫‪ JTextField3‬وتنفيذ المتغير ‪ ،Search‬أما إلا كان الحقل فارغ فإن المتغير ‪ Search‬يكون فارغا‪.‬‬

‫كود الزر> ‪ :‬لعرض الصف السابق‪.‬‬ ‫‪.5‬‬

‫كود الزر>> لعرض آخر صف في الجدول‬ ‫‪.6‬‬

‫‪92‬‬
‫كود زر >‪ :‬لعرض الصف السابق‬ ‫‪.7‬‬

‫كود زر >>‪ :‬لعرض أول عمود في الجدول‬ ‫‪.8‬‬

‫‪93‬‬
‫كود زر ‪ :New‬إلضافة عمود جديد‪:‬‬ ‫‪.9‬‬

‫كود زر ‪ :Update‬لعمل تغير في بيانات صف من الجدول‬ ‫‪.11‬‬

‫‪94‬‬
‫كود زر ‪ :Delete‬لمسح أي صف من صفوف الجدول‬ ‫‪.11‬‬

‫ثانيا ‪ :‬طريقة استيراد عمود ووضعه محتواه في كومبوبوكس‬

‫نقوم بتجهيز الفريم التالي‬

‫‪95‬‬
‫ستكون الدالة ‪ connDB‬بهذه الطريقة‪:‬‬

‫يتم في هذه الدالة تغيير قيمة المتغير ‪ rs‬حيث سيقوم بجلب فقط عمود واحد فقط وهو ‪BRAND‬‬

‫وتم استخدام ‪ do – while‬تكرار لتعبئة الكومبوبوكس‪.‬‬

‫‪96‬‬
:‫مثال تطبيقي لربط قاعدة البيانات‬
import java.sql.*;

public class SelectQuery {

private Connection con=null;

private Statement selectStatement;

private ResultSet selectResult;

public void connectToDB() {

try{

System.out.println("Loading the driver ...");

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

System.out.println("Connecting to database ...");

con = DriverManager.getConnection("jdbc:odbc:DB");

if(con!=null)

System.out.println("Connected to database ..."); }

catch(SQLException sqle) {

System.out.println(sqle.getMessage()); }

catch(ClassNotFoundException cnfe){

System.out.println(cnfe.getMessage()); } }

public void closeDB(){

try {

if(con != null)

con.close(); }

catch(SQLException sqle) {

97
System.out.println(sqle.getMessage()); } }

public void processBooksQuery(){

String query = "select * from students ";

try{

selectStatement = con.createStatement();

System.out.println("Sending Query to database Table ...\n");

selectResult = selectStatement.executeQuery(query);

System.out.println("The Query : "+query+"\n");

System.out.println("Query results\n");

while(selectResult.next()) {

System.out.println(selectResult.getString("Names")+

"\t"+selectResult.getString("Number")+

"\t"+selectResult.getString("Score")); }

selectResult.close(); }

catch(SQLException sqle){

System.out.println(sqle.getMessage()); } }

public static void main(String[] args){

SelectQuery sq = new SelectQuery();

sq.connectToDB();

sq.processBooksQuery();

sq.closeDB(); } }

98
‫مثال تطبيقي آخر على قواعد البيانات‪:‬‬

‫‪99‬‬
‫ملحق ‪4‬‬
‫إصدارات وأدوات لغة وبيئة جافا‬

‫‪100‬‬
JDK Versions
1. JDK 1.02 (1995)
2. JDK 1.1 (1996)
3. JDK 1.2 (1998)
4. JDK 1.3 (2000)
5. JDK 1.4 (2002)
6. JDK 1.5 (2004) a. k. a. JDK 5 or Java 5.

JDK Editions

1. Java Standard Edition (J2SE)

J2SE can be used to develop client-side standalone applications or applets.

2. Java Enterprise Edition (J2EE)

J2EE can be used to develop server-side applications such as Java servlets and
Java ServerPages.

3. Java Micro Edition (J2ME).

J2ME can be used to develop applications for mobile devices such as cell
phones.

Java IDE Tools


1. Borland JBuilder
2. NetBeans Open Source by Sun
3. Sun ONE Studio by Sun MicroSystems
4. Eclipse Open Source by IBM

101
‫جدول المحتويات‬
‫رقم الصفحة‬ ‫الموضوع‬ ‫الرقم‬
‫‪2‬‬ ‫مقدمة في لغة جافا‬ ‫‪.1‬‬
‫‪10‬‬ ‫المختبر األول‬ ‫‪.2‬‬
‫‪11‬‬ ‫المختبر الثاني‬ ‫‪.3‬‬

‫‪23‬‬ ‫المختبر الثالث‬ ‫‪.4‬‬

‫‪22‬‬ ‫المختبر الرابع‬ ‫‪.5‬‬

‫‪31‬‬ ‫المختبر الخامس‬ ‫‪.0‬‬

‫‪34‬‬ ‫المختبر السادس‬ ‫‪..‬‬

‫‪30‬‬ ‫المختبر السابع‬ ‫‪.2‬‬

‫‪31‬‬ ‫المختبر الثامن‬ ‫‪.1‬‬

‫‪42‬‬ ‫المختبر التاسع‬ ‫‪.15‬‬

‫‪44‬‬ ‫المختبر العاشر‬ ‫‪.11‬‬

‫‪42‬‬ ‫المختبر الحادي عشر‬ ‫‪.12‬‬

‫‪55‬‬ ‫المختبر الثاني عشر‬ ‫‪.13‬‬

‫‪02‬‬ ‫المختبر الثالث عشر‬ ‫‪.14‬‬

‫‪.2‬‬ ‫ملحق‪ :1‬إرشادات استخدام محرر البرمجة‬ ‫‪.15‬‬


‫‪Jcreator‬‬

‫‪102‬‬
‫‪23‬‬ ‫ملحق‪ :2‬إرشادات استخدام محرر البرمجة‬ ‫‪.10‬‬
‫‪NetBeans‬‬

‫‪2.‬‬ ‫ملحق‪ :3‬إرشادات ربط برنامج جافا بقاعدة البيانات‬ ‫‪.1.‬‬

‫‪155‬‬ ‫ملحق ‪:4‬‬ ‫‪.12‬‬


‫إصدارات وأدوات لغة وبيئة جافا‬

‫‪152‬‬ ‫جدول المحتويات‬

‫‪103‬‬

You might also like