خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: مشاريع مفتوحة المصدر Java App
صفحة 1 من اصل 1 • شاطر
خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما
بسم الله الرحمن الرحيم
أهلا وسهلا بكم أخوانى أعضاء و زوار منتدى مصر التقنى ...اليوم إن شاء الله تعالى سوف نقوم بإنشاء الة حاسبة بلغة الجافا و بالاعتماد على بنية NetBeans و كما فى الشكل التالى :
الخطوة الاولى : إنشاء مشروع جديد Java application كما فى الصورة التالية :
الخطوة الثانية :سيظهر لك المعالج التاالى :
أكتب اسم المشروع MyCalculator فى مربع النص أسم المشروع .... في الجزء السفلي، قم بإلغاء تحديد "إنشاء فئة رئيسية".لأنه سيتم إنشاء الأسلوب الرئيسي بالنسبة لنا من خلال NetBeans عندما نضيف نافذة كما هو اعلاه .
الخطوة الثالثة :بعد الضغط على زر انهاء فى الخطوة السابقة ....ستظهر لك الشاشة التالية :
الان سنقوم بانشاء نافذة لمشروعنا ...و لكى نتمكن من ذلك انقر بزر الماوس الأيمن على اسم المشروع في إطار مشاريع. ثم نختار الامر New > JFrame كما فى الصورة التالية :
سيظهر لك معالج انشاء نافذة جديدة ....فقط قم بادخال اسم الكلاس و ليكن JavaCalculator كما فى الصورة التالية:
ثم اضغط إنهاء سيظهر لك نافذة فارغة و بالجانب الايسر العناصر الرسومية كما فى الشكل التالى :
حدد تلك النافذة و من نافذة الخصائص ضع عنوان للنافذة كما فى الشكل التالى :
الخطوة الثالثة : قم بإضافة عدد مربع نص Text Field كما تعلمنا فى الدروس السابقة وكما هو فى الصورة التالية
من نافذة الخصائص للعنصر Text Field حدد الخاصية text ثم قم بمسح القيمة الافتراضية لمربع النص كما فى الصورة التالية
ثم بعد ذلك قم بتحديد العنصر Text Field ثم كليك شمال ثم أختر الامر Change Variable Name وذلك الاسم الافتراضى للعنصر الى txtDisplay و هذا هو الاسم الذى سيتم التعامل به فى صفحة الشفرة أو الكود
الخطوة الرابعة : إضافة عدد 19 زر أمر و التى تشمل الارقام من صفر حتى 9 بالاضافة الى ازار العمليات الحسابية (+ , - , * , /)...كما فى الصورة التالية :
و لكى تتمكن من إضافة العنصر الرسومى jButton الى النافذة كما هو ظاهر أعلاه فقط عن طريق السحب و الافلات كما فعلنا مع العنصر الرسومى مربع النص و كما فى الصور التالية :
عند إضافة أول زر لنافذة المشروع ستجد أن النص الافتراضى للزر jButton1 قم تغيرة الى الرقم المراد و ذلك عن طريق تحديد العنصر ثم من نافذة الخصائص حدد الخاصية Text ثم امسح النص الافتراضى و اكتب بدلا منه الرقم (1)كما فى الصورة التالية :
كرر تلك العملية مع جميع ازرار المشروع حتى ينتهى منها
الخطوة الخامسة :.كتابة الاكواد
1_ ازرار الارقام و العلامة العشرية
يوجد فى الالة الحاسبة التى نحن بصدد برمجتها عدد 11 زر خاص بالارقام و العلامة العشرية تم ترقيمها من الرقم (صفر)حتى الرقم (9)بالاضافة الى زر (.)العلامة العشرية .....المطلوب من تلك الازرار هو عند الضغط عليها يتم كتابة الرقم الخاص بها فى شاشة الناتج الحسابى txtDisplay ....و لكى تتمكن من الحصول على قيمة كل زر أو النص المكتوب على كل زر نستخدم الدالة getText و التى تقوم بجلب النص للعنصر ....و بعد ما قمنا بجلب قيمة الزر نريد عرضة فى شاشة الناتج الحسابى txtDisplay عن طريق الدالة SetText ...وقد يتسائل أحد الاخوة أين أكتب تلك الاكواد وكيفه يتم ذلك ؟
الجواب ...هو ان نقوم بتحديد العنصر أو الزر المراد الحصول على قيمته ثم كليك شمال نختار Event ثم نختار الامر Action,و ذلك لاضافة حدث لتنفيذ الكود عند حدوثة ومنه نختار الحدث actionPerformed ..سيتم فتح نافذة الكود كما فى الشكل التالى :
سوف يتم فتح نافذة الكود كما فى الشكل التالى :
و الكود المطلوب للحصول على قيمة كل زر و عرضة فى شاشة الناتج الحسابى txtDisplay سيكون على النحو التالى :
وكما هو ملاحظ فى الكود اعلاه ....السطر الاول قمنا بالاعلان عن المتغير النصى s1 و جعلناه يحفظ قيمة زر الامر (1) ...ثم جعلنا شاشة الناتج الحسابى txtDisplay تعرض تلك القيمة باستخدام الدالة ... وعند الضغط على زر الامر واحد سيكون كما فى الشكل التالى :
لكن ستواجهنا مشكلة لو اننا اكتفينا بالكود السابق ...فما إذا كنت ترغب في إدخال رقم 11، أو 121؟ عند النقر فوق الزر عدة مرات او النقر على زر اخر، لا شيء لن ياتى بشىء الا قيمة الزر الذى تم الضغط علية ...والسبب هو أن لدينا كود لا يحفظ كل ما هو في حقل النص السابق....لذلك إذا كنا نريد عدد 12، سيكون علينا الحفاظ 1 أولا.ودمجها مع نص الزر الثانى الذى تم النقر علية. ..و بالتالى فإن الكود السابق سيصبح كما يلى :
2_ ازرار العمليات الحسابية (+,-,*,/)
المطلوب من تلك الازرار هو عند النقر عليها ان تحفظ القيمة الموجودة فى شاشة الناتج الحسابى txtDisplay و ذلك لاجاء العمليات الحسابية علية بعد ادخال الرقم الثانى ...ثم بعد ذلك حفظ نوع العملية الحسابية فى متغير نصى حتى نعمل ماذا يريد المستخدم من تلك العملية هل هى الجمع ام الطرح ام القسمة ام الضرب ...بعد ذلك مسح شاشة الناتج الحسابى لاستقبال الرقم الثانى ....تعالوا الان ننفذ ذلك برمجيا ...
اولا : نقوم بالاعلان عن متغيرين الاول نصى String و ليكن st لحفظ علامة العملية الحسابية و الثانى من نوع double و ذلك لحفظ قيمة الرقم الاول و ذلك على النحو التالى :
و يمكنك ملاحظة اننا قمنا بالاعلان عن تلك المتغيرات خارج اى حدث من احداث البرنامج حتى يتثنى لنا استخدامة على مستوى الكلاس JavaCalculator ..وتحت حدث النقر على زر الجمع يكون الكود على النحو التالى :
ففى السطر الاول قمنا بحفظ قيمة شاشة الناتج الحسابى txtDisplay فى المتغير NO1 بعد تحويلة الى قيمة رقمية ...اما السطر الثانى قمنا بحفظ قيمة زر العملية الحسابية فى المتغير ST وهو متغير نصى ....اما السطر الثالث هو لمسح شاشة الناتج الحسابى لادخال الرقم الثانى المطلوب اجراء العمليات الحسابية علية ...
سنكرر الكود السابق فى زر الضرب و الطرح و القسمة مع تغير بسيط فى قيمة الزر المطلوب الحصول على علامته فقط ...
3_ برمجة زر الامر يساوى (=)
المطلوب من هذا الزر هو عند النقر علية حفظ قيمة شاشة الناتج الحسابى الحالى ...ثم اجراء العملية الحسابية المطلوبة على الرقمين الاول الذى تم تخزينة اثناء النقر على زر العمليات الحسابية و الرقم الثانى الذى تم حفظة توا بشرط العملية الحسابية التى تم اختيارها من قبل المستخدم سواء كانت جمع او طرح او ضرب او قسمة ...و بالتالى ستكون الاكواد على النحو التالى :
وفى حدث النقر على زر يساوى نكتب الكود التالى :
و من الكود أعلاه لاحظ أننا قمنا بحفظ قيمة شاشة الناتج الحسابى txtDisplay بعد تحويلة لقيمة رقيمة من نوع Double فى المتغير no 2 ...وفى السطر الثانى اعلنت عن المتغير type من النوع الحرفى و تخزين فية قيمة المتغير النصى st بعد تحويلة الى متغير من نوع char و الحكمة من ذلك اننى اريد استخدام جملة switch للحصول على نوع العملية الحسابية و تلك الجملة لا تدعم القيم النصية String الا فى حالة كون اصدار الجافا لديك 7 فما فوق ...غير ذلك من الاصدارات لا تدعم القيم النصية
بعد ذلك استخدمنا جملة switch لمعرفة نوع العملية التى اختارها المستخدم ...و عندما اردنا اظهار قيمة العملية الحسابية فى شاشة الناتج الحسابى txtDisplay تم تحويله أولا الى قيمة نصية عن طريق الامر Double.toString
4_برمجة زر الامر (c)
يستخدم هذا الامر فى الالة الحاسبة لالغاء العملية الحسابية و مسح البيانات المخزنة فى المتغيرات و بالتالى فأن الكود الخاص بهذا الزر سيكون على النحو التالى :
5_برمجة زر الامر (CE )
يستخدم هذا الامر فى الالة الحاسبة لمسح البيانات الموجودة حاليا فى شاشة الحاسبة مع عدم الغاء باقى العملية ....وبالتالى سيكون الكود على النحو التالى :
6_برمجة زر الامر (+/-)
هذا الزر الخاص بتغير أشارة الرقم الى سالب أو موجب ولكى يتم ذلك فهناك كود بيسط جدا للغاية وهو على النحو التالى
لاحظ يا عزيزى أننا فى الكود السابق طلبنا من البرنامج عند الضغط على هذا الزر أن يجعل قيمة txtDisplay تساوى تلك القيمة مضروبة فى سالب (1) ...وبالتالى فأن الناتج لو كان بالسالب سيصبح بالموجب لان سالب*سالب موجب)...ولو أن الرقم الموجود بالموجب فسيصبح بالسالب لان(سالب *موجب = سالب)...وطبعا لكى نقوم بتلك العملية الحسابية يجب تحويلة قيمة txtDisplay.الى قيمة رقمية Double عند اجراء العملية الحسابية و تحويلها مرة اخرى الى قيمة نصية String عند عرضها فى شاشة الناتج الحسابى ..
أهلا وسهلا بكم أخوانى أعضاء و زوار منتدى مصر التقنى ...اليوم إن شاء الله تعالى سوف نقوم بإنشاء الة حاسبة بلغة الجافا و بالاعتماد على بنية NetBeans و كما فى الشكل التالى :
الخطوة الاولى : إنشاء مشروع جديد Java application كما فى الصورة التالية :
الخطوة الثانية :سيظهر لك المعالج التاالى :
الخطوة الثالثة :بعد الضغط على زر انهاء فى الخطوة السابقة ....ستظهر لك الشاشة التالية :
سيظهر لك معالج انشاء نافذة جديدة ....فقط قم بادخال اسم الكلاس و ليكن JavaCalculator كما فى الصورة التالية:
الخطوة الثالثة : قم بإضافة عدد مربع نص Text Field كما تعلمنا فى الدروس السابقة وكما هو فى الصورة التالية
و لكى تتمكن من إضافة العنصر الرسومى jButton الى النافذة كما هو ظاهر أعلاه فقط عن طريق السحب و الافلات كما فعلنا مع العنصر الرسومى مربع النص و كما فى الصور التالية :
عند إضافة أول زر لنافذة المشروع ستجد أن النص الافتراضى للزر jButton1 قم تغيرة الى الرقم المراد و ذلك عن طريق تحديد العنصر ثم من نافذة الخصائص حدد الخاصية Text ثم امسح النص الافتراضى و اكتب بدلا منه الرقم (1)كما فى الصورة التالية :
الخطوة الخامسة :.كتابة الاكواد
1_ ازرار الارقام و العلامة العشرية
يوجد فى الالة الحاسبة التى نحن بصدد برمجتها عدد 11 زر خاص بالارقام و العلامة العشرية تم ترقيمها من الرقم (صفر)حتى الرقم (9)بالاضافة الى زر (.)العلامة العشرية .....المطلوب من تلك الازرار هو عند الضغط عليها يتم كتابة الرقم الخاص بها فى شاشة الناتج الحسابى txtDisplay ....و لكى تتمكن من الحصول على قيمة كل زر أو النص المكتوب على كل زر نستخدم الدالة getText و التى تقوم بجلب النص للعنصر ....و بعد ما قمنا بجلب قيمة الزر نريد عرضة فى شاشة الناتج الحسابى txtDisplay عن طريق الدالة SetText ...وقد يتسائل أحد الاخوة أين أكتب تلك الاكواد وكيفه يتم ذلك ؟
الجواب ...هو ان نقوم بتحديد العنصر أو الزر المراد الحصول على قيمته ثم كليك شمال نختار Event ثم نختار الامر Action,و ذلك لاضافة حدث لتنفيذ الكود عند حدوثة ومنه نختار الحدث actionPerformed ..سيتم فتح نافذة الكود كما فى الشكل التالى :
سوف يتم فتح نافذة الكود كما فى الشكل التالى :
- الكود:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String s1= txtDisplay.getText()+jButton1.getText();
txtDisplay.setText(s1);
}
2_ ازرار العمليات الحسابية (+,-,*,/)
المطلوب من تلك الازرار هو عند النقر عليها ان تحفظ القيمة الموجودة فى شاشة الناتج الحسابى txtDisplay و ذلك لاجاء العمليات الحسابية علية بعد ادخال الرقم الثانى ...ثم بعد ذلك حفظ نوع العملية الحسابية فى متغير نصى حتى نعمل ماذا يريد المستخدم من تلك العملية هل هى الجمع ام الطرح ام القسمة ام الضرب ...بعد ذلك مسح شاشة الناتج الحسابى لاستقبال الرقم الثانى ....تعالوا الان ننفذ ذلك برمجيا ...
اولا : نقوم بالاعلان عن متغيرين الاول نصى String و ليكن st لحفظ علامة العملية الحسابية و الثانى من نوع double و ذلك لحفظ قيمة الرقم الاول و ذلك على النحو التالى :
- الكود:
public class JavaCalculator extends javax.swing.JFrame {
private double no1 = 0.0;
private String st;
و يمكنك ملاحظة اننا قمنا بالاعلان عن تلك المتغيرات خارج اى حدث من احداث البرنامج حتى يتثنى لنا استخدامة على مستوى الكلاس JavaCalculator ..وتحت حدث النقر على زر الجمع يكون الكود على النحو التالى :
- الكود:
no1=Double.parseDouble( txtDisplay.getText( ));
st=jButton20.getText();
txtDisplay.setText("");
ففى السطر الاول قمنا بحفظ قيمة شاشة الناتج الحسابى txtDisplay فى المتغير NO1 بعد تحويلة الى قيمة رقمية ...اما السطر الثانى قمنا بحفظ قيمة زر العملية الحسابية فى المتغير ST وهو متغير نصى ....اما السطر الثالث هو لمسح شاشة الناتج الحسابى لادخال الرقم الثانى المطلوب اجراء العمليات الحسابية علية ...
سنكرر الكود السابق فى زر الضرب و الطرح و القسمة مع تغير بسيط فى قيمة الزر المطلوب الحصول على علامته فقط ...
3_ برمجة زر الامر يساوى (=)
المطلوب من هذا الزر هو عند النقر علية حفظ قيمة شاشة الناتج الحسابى الحالى ...ثم اجراء العملية الحسابية المطلوبة على الرقمين الاول الذى تم تخزينة اثناء النقر على زر العمليات الحسابية و الرقم الثانى الذى تم حفظة توا بشرط العملية الحسابية التى تم اختيارها من قبل المستخدم سواء كانت جمع او طرح او ضرب او قسمة ...و بالتالى ستكون الاكواد على النحو التالى :
- الكود:
private double no2 = 0.0;
private double total = 0.0;
وفى حدث النقر على زر يساوى نكتب الكود التالى :
- الكود:
no2=Double.parseDouble( txtDisplay.getText( ));
char type=st.charAt(0);
switch(type){
case '+':
total=no1+no2;
txtDisplay.setText(Double.toString(total));
break;
case '-':
total=no1-no2;
txtDisplay.setText(Double.toString(total));
break;
case '*':
total=no1*no2;
txtDisplay.setText(Double.toString(total));
break;
case '/':
total=no1/no2;
txtDisplay.setText(Double.toString(total));
break;
}
و من الكود أعلاه لاحظ أننا قمنا بحفظ قيمة شاشة الناتج الحسابى txtDisplay بعد تحويلة لقيمة رقيمة من نوع Double فى المتغير no 2 ...وفى السطر الثانى اعلنت عن المتغير type من النوع الحرفى و تخزين فية قيمة المتغير النصى st بعد تحويلة الى متغير من نوع char و الحكمة من ذلك اننى اريد استخدام جملة switch للحصول على نوع العملية الحسابية و تلك الجملة لا تدعم القيم النصية String الا فى حالة كون اصدار الجافا لديك 7 فما فوق ...غير ذلك من الاصدارات لا تدعم القيم النصية
بعد ذلك استخدمنا جملة switch لمعرفة نوع العملية التى اختارها المستخدم ...و عندما اردنا اظهار قيمة العملية الحسابية فى شاشة الناتج الحسابى txtDisplay تم تحويله أولا الى قيمة نصية عن طريق الامر Double.toString
4_برمجة زر الامر (c)
يستخدم هذا الامر فى الالة الحاسبة لالغاء العملية الحسابية و مسح البيانات المخزنة فى المتغيرات و بالتالى فأن الكود الخاص بهذا الزر سيكون على النحو التالى :
- الكود:
txtDisplay.setText("");
st="" ;
no1 = 0.0;
no2 = 0.0;
5_برمجة زر الامر (CE )
يستخدم هذا الامر فى الالة الحاسبة لمسح البيانات الموجودة حاليا فى شاشة الحاسبة مع عدم الغاء باقى العملية ....وبالتالى سيكون الكود على النحو التالى :
- الكود:
txtDisplay.setText("");
6_برمجة زر الامر (+/-)
هذا الزر الخاص بتغير أشارة الرقم الى سالب أو موجب ولكى يتم ذلك فهناك كود بيسط جدا للغاية وهو على النحو التالى
- الكود:
Double s1= Double.parseDouble( txtDisplay.getText( ))* -1;
txtDisplay.setText(Double.toString(s1));
لاحظ يا عزيزى أننا فى الكود السابق طلبنا من البرنامج عند الضغط على هذا الزر أن يجعل قيمة txtDisplay تساوى تلك القيمة مضروبة فى سالب (1) ...وبالتالى فأن الناتج لو كان بالسالب سيصبح بالموجب لان سالب*سالب موجب)...ولو أن الرقم الموجود بالموجب فسيصبح بالسالب لان(سالب *موجب = سالب)...وطبعا لكى نقوم بتلك العملية الحسابية يجب تحويلة قيمة txtDisplay.الى قيمة رقمية Double عند اجراء العملية الحسابية و تحويلها مرة اخرى الى قيمة نصية String عند عرضها فى شاشة الناتج الحسابى ..
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
رد: خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما
مشروع رائع ......شكرا استاذ احمد
نجلاء فتحي- ....
- تاريخ التسجيل : 20/02/2011
المساهمات : 53
النقاط : 103
التقيم : 0
الجنس :
رد: خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما
شرحك متميز يا صديق يا غالى
جورج صبحى- ......
- تاريخ التسجيل : 18/02/2011
المساهمات : 127
النقاط : 259
التقيم : 6
الجنس :
رد: خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما
والله مبدع يا اخى ....لاول مرة أشوف برامج بالجافا كاملة ففى معظم المنتديات يتحدثون عن جزئية صغير من كود معين ....أشكرك بجد
ذوكا- .....
- تاريخ التسجيل : 26/05/2013
المساهمات : 92
النقاط : 156
التقيم : 12
الدولة :
الجنس :
رد: خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما
للرفع
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
رد: خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما
السلام عليكم ورحمة الله وبركاته ...
المعذرة بس أيش اكتب في دالة ال Main علشان تظهر الحاسبة ؟
المعذرة بس أيش اكتب في دالة ال Main علشان تظهر الحاسبة ؟
Tutorial- .
- تاريخ التسجيل : 07/04/2017
المساهمات : 1
النقاط : 1
التقيم : 0
الدولة :
الجنس :
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: مشاريع مفتوحة المصدر Java App
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
الثلاثاء مارس 26, 2024 6:26 pm من طرف moslema_r
» شركة تنظيف استراحات بالرياض
الأحد مارس 24, 2024 10:49 pm من طرف moslema_r
» كشف تسربات المياه في جدة
السبت مارس 23, 2024 7:23 pm من طرف gmalnagy
» خدمات كشف تسربات المياه بخصم 25% - اتصل الان
السبت مارس 23, 2024 7:22 pm من طرف gmalnagy
» شركة تنظيف ثريات بالرياض
الخميس مارس 21, 2024 7:23 pm من طرف moslema_r
» كهربائي منازل بالرياض
الأحد مارس 17, 2024 1:52 pm من طرف رانيا حماد
» افضل شركة نقل عفش بالرياض نقل باكستاني 40% خصم | موقع الانوار
الأحد مارس 17, 2024 1:25 pm من طرف رانيا حماد
» افضل معلم جبس بالرياض تركيب جبس بورد بالرياض 20% خصم اتصل الآن
الأحد مارس 17, 2024 1:09 pm من طرف رانيا حماد
» شراء اثاث مستعمل بالكويت بخصم 30%
الأحد مارس 17, 2024 12:54 pm من طرف رانيا حماد
» افضل فني كهربائي منازل بالرياض جودة 100% | اتصل الآن
الأحد مارس 17, 2024 12:36 pm من طرف رانيا حماد