الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

برنامج GUI لضرب المصفوفات

بدأه khaled_prg في 13 أكتوبر 2012 · 9 رد · 1,680 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أريد محاكاة البرنامج المُرفق (يبدو أنه مكتوب بالــ VB).

Easy-Math.rar

البرنامج يقوم بضرب مصفوفتين إذا كانت أبعادهما أقل أو تُساوي 3.

نختار أولا أبعاد كل مصفوفة ثم نضغط على "التحقق من نظم المصفوفات" ثم "ضرب" و "مسألة جديدة" إن أردنا تنفيذ عملية ضرب أخرى :

post-225348-088207000 1350133338_thumb.p

طبعا, البرنامج غير كامل لأن صاحبه لم يقم بمعالجة الإستثناءات فعند إدخال رمز مثلا في إحدى خانات المصفوفة سيتم إطلاق استثناء يدل على فشل عملية تحويل string إلى double.

أنا أريد أن أكتب برنامج مشابه للبرنامج السابق ثم أضيف بعض التحسينات الأخرى للتدريب :)

رسمت الواجهة الرئيسية هكذا :

post-225348-096596300 1350133361_thumb.p

و لكن السؤال الأول هو :

ما هي الطريقة الأفضل لإظهار و إخفاء خانات المصفوفة (عناصر الــ jTextField) ؟

حاولت مع الدالة setVisible و لكن العناصر لا تختفي نهائيا و إنما تصبح مظللة فقط !

post-225348-008601300 1350133384_thumb.p

مالحل؟

المرفقات
Prog.pngkhaled_prg.pngsetVisible.png
#2

اذا كان بدك تعمل برنامج مثل اللي بالصورة الاولى ... فالامر سهل "أظنها عملية ثابتة يعني 2*3 ... صح ؟" ... كل ما عليك هو انشاء 2*3 JtextField x 2*3 JtextField

مثلا :

int x1 = Integer.parseInteger(jTextField1.getText'));

او بالنسبة للـ double

double x1 = Double.parseDouble(jTextField1.getText());

وخذ بالك من حالة الاحرف 'كبير و صغير' ، .... وهكذا يمكنك انشاء هيكل ثابت يتكون من 12 JtextField

لكن من جهتي ، فأنصحك بالـ jTables ... روعة ، وهناك امثلة وااايد حلوة عن كيفية الجداء عن طريقها

ولازم تضع بحسبانك ان مصفوفة ذات سطران لا تقبل الجداء الا مع مصفوفة ذات عمودان ويمكن للاسطر ان تزيد في هذه الاخيرة طبعا

موفق

556891961.gif

I am learning from you

it is the programmer eye

#3
اقتباس
و لكن السؤال الأول هو :

ما هي الطريقة الأفضل لإظهار و إخفاء خانات المصفوفة (عناصر الــ jTextField) ؟

نفرض انها jTextField1 ... كل ما عليك هو كتابة الامر :

jTextField1.setText(Value);

حيث Value هي القيمة المراد طباعتها

ونصيحة من عندي أكتب هذان الامران من اجل التحقق من الطباعة الصحيحة :

jTextField1.setText(Value);
System.out.println("The Value is : "+Value);

آمل انني افدتك واي شي انا بالخدمة

موفق

تم تعديل هذه المشاركة بواسطة المشاكـس5550 في 13 أكتوبر 2012 في 20:33

556891961.gif

I am learning from you

it is the programmer eye

#4

مرحبا أخي مشاكس :)

ما علاقة هذا السطرين بإخفاء أو إظهار الــ jTextFields ؟

int x1 = Integer.parseInteger(jTextField1.getText());
double x1 = Double.parseDouble(jTextField1.getText());

أنا لا أتحدث عن كيفية تحويل محتوى الــ jTextField إلى int أو double و إنما أسأل عن كيفية إخفاء الــ jTextFields عند بداية تشغيل البرنامج بحيث لا تظهر مطلقا (تماما كما حدث مع صاحب الفيجوال).

اقتباس
يمكنك انشاء هيكل ثابت يتكون من 12 JtextField

كيف ؟

إذا أرفقت لي مثال سأكون ممتناً لك :)

اقتباس
لكن من جهتي ، فأنصحك بالـ jTables ... روعة ، وهناك امثلة وااايد حلوة عن كيفية الجداء عن طريقها

نعم, سأستعمل الــ jTables في النسخة الثانية من البرنامج إن شاء الله.

اقتباس

نفرض انها jTextField1 ... كل ما عليك هو كتابة الامر :

jTextField1.setText(Value);

حيث Value هي القيمة المراد طباعتها

ونصيحة من عندي أكتب هذان الامران من اجل التحقق من الطباعة الصحيحة :

jTextField1.setText(Value);
System.out.println("The Value is : "+Value);

ما علاقة الــ Getters/Setters بسؤالي ؟ :blink:

#5
اقتباس
ما علاقة هذا السطرين بإخفاء أو إظهار الــ jTextFields ؟

تماما ... من اجل تحويل الـ String الى الـ Int Or double :wink:

اقتباس
و إنما أسأل عن كيفية إخفاء الــ jTextFields عند بداية تشغيل البرنامج بحيث لا تظهر مطلقا (تماما كما حدث مع صاحب الفيجوال).

....ربما عامل لها Block ... أنت اكيد تستعمل Netbeans ، جرب الخيارات الموجودة على يمين نافذة الNetbeans في الاسفل "هناك ايضا خيارات نوع الكتابة ووو..."

ربما يكون استعمال jLabel أفضل بكثييير 'فيما يتعلق بالنتيجة فقط'

اقتباس
كيف ؟

إذا أرفقت لي مثال سأكون ممتناً لك :)

اقصد ان تتعامل مع عناصر المصفوفة واحد بواحد ... بعبارة اخرى ، لكل عدد موجود بالمصفوفة تجعل له jTextField .... لا تواخدني لكنه حل تافه نوعا ما :dry:

اقتباس
نعم, سأستعمل الــ jTables في النسخة الثانية من البرنامج إن شاء الله.

بيكون وااااايد حلو هيك :)

اقتباس
ما علاقة الــ Getters/Setters بسؤالي ؟ :blink:

ذلك لانك سألت حول :

اقتباس
و لكن السؤال الأول هو :

ما هي الطريقة الأفضل لإظهار و إخفاء خانات المصفوفة (عناصر الــ jTextField) ؟

والطريقة الوحيدة من اجل الطباعة هو عن طريق الSetters .... :lol:

556891961.gif

I am learning from you

it is the programmer eye

#6
اقتباس
تماما ... من اجل تحويل الـ String الى الـ Int Or double

الطريقة الوحيدة من اجل الطباعة هو عن طريق الSetters

يبدو أنك فهمتني خطأ :)

أنا لا أقصد اظهار ما بداخل الــ jTextField و إنما اظهار أو اخفاء الــ jTextField نفسها !

تم تعديل هذه المشاركة بواسطة khaled_prg في 14 أكتوبر 2012 في 00:12

#7

السلام عليكم

قمت الآن بتسيير أغلب الإستثناءات الأولية :

post-225348-018435200 1350172587_thumb.p

post-225348-086860000 1350172623_thumb.p

السؤال الآن هو :

كيف أستطيع تمييز الــ JTextField التي تم اختيارها حتى أستخرج منها الأرقام و أقوم بعملية الضرب.

شكراً لكم.

المرفقات
7GF23UCVE.png7823HAN9.png
#8

السلام عليكم

كيف حالك مستر خالد

اقتباس

كيف أستطيع تمييز الــ JTextField التي تم اختيارها حتى أستخرج منها الأرقام و أقوم بعملية الضرب.

من خلال jTextFieldName.isVisible(); تعيد true إذا كان العنصر مرئى و false إن لم يكن مرئى .

لاتحسبن العلم ينفع وحده مالم يتوج ربه بخلاق

لا إله إلا أنت سبحانك إني كنت من الظالمين

#9

مرحبا أخي أحمد :)

نعم أنا استخدمت الدالة isEnabled لأنني أقوم بتعطيل العناصر قبل البدء.

الآن, انتهيت من كتابة النسخة الأولى من البرنامج و أريد أن أضعه في موضوع جديد مع الشفرة المصدرية و بعض التفاصيل الأخرى, لكن قبل ذلك أريد تحويل ملف الــ Jar إلى Exe.

حاولت مع برنامج JEXECreator لكن في كل مرة يُظهر لي هذا الخطأ :

post-225348-033794900 1350242703_thumb.p
المرفقات
Err.png

تم تعديل هذه المشاركة بواسطة khaled_prg في 14 أكتوبر 2012 في 22:28

#10

تم بحمد الله حل المشكلة.

قمت باستخدام برنامج Java Launcher لتحويل الــ Jar إلى Exe وقد كان برنامجا رائعاً بالفعل :)

النسخة الأولى من برنامج Matrix Multiplayer

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…