منتدى مصر التقني
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما

اذهب الى الأسفل

خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما  Empty خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما

مُساهمة من طرف أحمد مناع الثلاثاء مارس 12, 2013 2:18 pm

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

أهلا وسهلا بكم أخوانى أعضاء و زوار منتدى مصر التقنى ...اليوم إن شاء الله تعالى سوف نقوم بإنشاء الة حاسبة بلغة الجافا و بالاعتماد على بنية NetBeans و كما فى الشكل التالى :


خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما  Egy-tech13630977671

الخطوة الاولى : إنشاء مشروع جديد Java application كما فى الصورة التالية :


خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما  Egy-tech13630962001

الخطوة الثانية :سيظهر لك المعالج التاالى :


خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما  Wizard_2
أكتب اسم المشروع MyCalculator فى مربع النص أسم المشروع .... في الجزء السفلي، قم بإلغاء تحديد "إنشاء فئة رئيسية".لأنه سيتم إنشاء الأسلوب الرئيسي بالنسبة لنا من خلال NetBeans عندما نضيف نافذة كما هو اعلاه .

الخطوة الثالثة :بعد الضغط على زر انهاء فى الخطوة السابقة ....ستظهر لك الشاشة التالية :


خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما  Egy-tech13630962002
الان سنقوم بانشاء نافذة لمشروعنا ...و لكى نتمكن من ذلك انقر بزر الماوس الأيمن على اسم المشروع في إطار مشاريع. ثم نختار الامر New > JFrame كما فى الصورة التالية :

خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما  Projects_rightClick

سيظهر لك معالج انشاء نافذة جديدة ....فقط قم بادخال اسم الكلاس و ليكن JavaCalculator كما فى الصورة التالية:

خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما  Wizard_form

ثم اضغط إنهاء سيظهر لك نافذة فارغة و بالجانب الايسر العناصر الرسومية كما فى الشكل التالى :


خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما  Egy-tech13630962003
حدد تلك النافذة و من نافذة الخصائص ضع عنوان للنافذة كما فى الشكل التالى :


خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما  Properties_title

الخطوة الثالثة : قم بإضافة عدد مربع نص Text Field كما تعلمنا فى الدروس السابقة وكما هو فى الصورة التالية


خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما  Palette_textField

خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما  TextField_mouse

من نافذة الخصائص للعنصر Text Field حدد الخاصية text ثم قم بمسح القيمة الافتراضية لمربع النص كما فى الصورة التالية

خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما  Egy-tech13630965531

خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما  Properties_text2
ثم بعد ذلك قم بتحديد العنصر Text Field ثم كليك شمال ثم أختر الامر Change Variable Name وذلك الاسم الافتراضى للعنصر الى txtDisplay و هذا هو الاسم الذى سيتم التعامل به فى صفحة الشفرة أو الكود


خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما  Inspector_changeVarName

خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما  Egy-tech13630965532


الخطوة الرابعة : إضافة عدد 19 زر أمر و التى تشمل الارقام من صفر حتى 9 بالاضافة الى ازار العمليات الحسابية (+ , - , * , /)...كما فى الصورة التالية :


خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما  Egy-tech13630965533

و لكى تتمكن من إضافة العنصر الرسومى jButton الى النافذة كما هو ظاهر أعلاه فقط عن طريق السحب و الافلات كما فعلنا مع العنصر الرسومى مربع النص و كما فى الصور التالية :


خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما  Palette_Button


خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما  Button_form

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


خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما  Button_properties



خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما  Button_form3

كرر تلك العملية مع جميع ازرار المشروع حتى ينتهى منها

الخطوة الخامسة :.كتابة الاكواد

1_ ازرار الارقام و العلامة العشرية

يوجد فى الالة الحاسبة التى نحن بصدد برمجتها عدد 11 زر خاص بالارقام و العلامة العشرية تم ترقيمها من الرقم (صفر)حتى الرقم (9)بالاضافة الى زر (.)العلامة العشرية .....المطلوب من تلك الازرار هو عند الضغط عليها يتم كتابة الرقم الخاص بها فى شاشة الناتج الحسابى txtDisplay ....و لكى تتمكن من الحصول على قيمة كل زر أو النص المكتوب على كل زر نستخدم الدالة getText و التى تقوم بجلب النص للعنصر ....و بعد ما قمنا بجلب قيمة الزر نريد عرضة فى شاشة الناتج الحسابى txtDisplay عن طريق الدالة SetText ...وقد يتسائل أحد الاخوة أين أكتب تلك الاكواد وكيفه يتم ذلك ؟

الجواب ...هو ان نقوم بتحديد العنصر أو الزر المراد الحصول على قيمته ثم كليك شمال نختار Event ثم نختار الامر Action,و ذلك لاضافة حدث لتنفيذ الكود عند حدوثة ومنه نختار الحدث actionPerformed ..سيتم فتح نافذة الكود كما فى الشكل التالى :

خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما  Inspector_event_action

سوف يتم فتح نافذة الكود كما فى الشكل التالى :


خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما  Egy-tech13630972631
و الكود المطلوب للحصول على قيمة كل زر و عرضة فى شاشة الناتج الحسابى txtDisplay سيكون على النحو التالى :

خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما  Egy-tech13630972642
وكما هو ملاحظ فى الكود اعلاه ....السطر الاول قمنا بالاعلان عن المتغير النصى s1 و جعلناه يحفظ قيمة زر الامر (1) ...ثم جعلنا شاشة الناتج الحسابى txtDisplay تعرض تلك القيمة باستخدام الدالة ... وعند الضغط على زر الامر واحد سيكون كما فى الشكل التالى :


خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما  Calculator_num1
لكن ستواجهنا مشكلة لو اننا اكتفينا بالكود السابق ...فما إذا كنت ترغب في إدخال رقم 11، أو 121؟ عند النقر فوق الزر عدة مرات او النقر على زر اخر، لا شيء لن ياتى بشىء الا قيمة الزر الذى تم الضغط علية ...والسبب هو أن لدينا كود لا يحفظ كل ما هو في حقل النص السابق....لذلك إذا كنا نريد عدد 12، سيكون علينا الحفاظ 1 أولا.ودمجها مع نص الزر الثانى الذى تم النقر علية. ..و بالتالى فإن الكود السابق سيصبح كما يلى :

الكود:

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 عند عرضها فى شاشة الناتج الحسابى ..

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 1108
النقاط : 202034
التقيم : 144
الدولة : مصر
الجنس : ذكر

https://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما  Empty رد: خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما

مُساهمة من طرف نجلاء فتحي الأربعاء مارس 13, 2013 8:24 pm

مشروع رائع ......شكرا استاذ احمد
نجلاء فتحي
نجلاء فتحي
....
....

تاريخ التسجيل : 20/02/2011
المساهمات : 53
النقاط : 103
التقيم : 0
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما  Empty رد: خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما

مُساهمة من طرف جورج صبحى الخميس مارس 14, 2013 12:39 pm

شرحك متميز يا صديق يا غالى
جورج صبحى
جورج صبحى
......
......

تاريخ التسجيل : 18/02/2011
المساهمات : 127
النقاط : 259
التقيم : 6
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما  Empty رد: خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما

مُساهمة من طرف ذوكا الثلاثاء مايو 28, 2013 2:57 pm

والله مبدع يا اخى ....لاول مرة أشوف برامج بالجافا كاملة ففى معظم المنتديات يتحدثون عن جزئية صغير من كود معين ....أشكرك بجد
ذوكا
ذوكا
.....
.....

تاريخ التسجيل : 26/05/2013
المساهمات : 92
النقاط : 156
التقيم : 12
الدولة : مصر
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما  Empty رد: خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما

مُساهمة من طرف أحمد مناع الأحد أبريل 06, 2014 5:54 pm

للرفع  Very Happy Very Happy Very Happy 

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 1108
النقاط : 202034
التقيم : 144
الدولة : مصر
الجنس : ذكر

https://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما  Empty رد: خطوة بخطوة لبرمجة الة حاسبة بالجافا مثل حاسبة الويندذ الى حد ما

مُساهمة من طرف Tutorial الجمعة أبريل 07, 2017 8:17 pm

السلام عليكم ورحمة الله وبركاته ...

المعذرة بس أيش اكتب في دالة ال Main علشان تظهر الحاسبة ؟
Tutorial
Tutorial
.
.

تاريخ التسجيل : 07/04/2017
المساهمات : 1
النقاط : 1
التقيم : 0
الدولة : اليمن
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى