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

برنامج سطح مكتب

بدأه Eng-Khaled في 18 يناير 2012 · 7 رد · 846 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الهدف ان يتم الإستفادة من البرنامج وان تعم الفائدة ولو هناك مشكلة أو إضافة نقوم ان شاء الله بالتعامل معها من حيث الإضافة او الحل .

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

رابط البرنامج على المديا فير

1
#2

جاري التحميل والإستفاده منه إن شاء الله

جزاك الله خيرا :)

برنامج Online Exam مفتوح المصدر

 

To Info:abdelrahman.awad@yahoo.com

 

 

\

#3

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

اولا لم تضع كلمه المرور لاستخدام البرنامج كمدير

ثانيا لا يوجد الكود المصدرى للاطلاع عليه كما ذكرت فى بدايه موضوعك

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

وشكرا

Software Developer
Mahmoudkelany.com


 

#4

السلام عليكم

نفس المشكله بالنسبه إلي أخي الفاضل ......لايوجد الكود المصدري للبرنامج ولا الباسورد

نرجو الإفاده أخي الفاضل

تم تعديل هذه المشاركة بواسطة abdelrahman.awad في 19 يناير 2012 في 02:57

برنامج Online Exam مفتوح المصدر

 

To Info:abdelrahman.awad@yahoo.com

 

 

\

#5

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

Mahmoud Kelany كتب:

اولا لم تضع كلمه المرور لاستخدام البرنامج كمدير

بالنسبة لكلمة مرور المدير موجود فعلاً فى ملف Read Me وهو على العموم [admin]

Mahmoud Kelany كتب:

ثانيا لا يوجد الكود المصدرى للاطلاع عليه كما ذكرت فى بدايه موضوعك

رابط الكود المصدري للبرنامج

#6
Eng-Khaled كتب:

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

بالنسبة لكلمة مرور المدير موجود فعلاً فى ملف Read Me وهو على العموم [admin]

رابط الكود المصدري للبرنامج

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

دائما ما يكون الملف Read ME هو ملف منشأ من قبل الـ Netbeans ولا احد ينظر اليه لان به معلومات خاصه بالـ jar file

لذلك كان يجب عليك التنبيه ليس الا

على العموم جزاكم الله خيرا :)

وجارى التحميل والاطلاع

وشكرا

Software Developer
Mahmoudkelany.com


 

#7

بالنسبه لاضافه الموزع عندما يتم اضافه موزع

يجب اغلاق البرنامج والخروج كى يقوم بوضعه فى الـ combobox الخاص بالموزع

يجب عليك التعديل فى ان يقوم باعاده تحميل الموزعين فى حاله ضاف موزع او عدلة

فى حاله الرسائل الخطأ استخدم علامه الخطأ وهى دائرة حمراء تدل على ان المستخدم استخدم شىء خطأ

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

اجعله بطريقه اتوماتيكيه لكن الغى التعديل عليه

فى حاله البحث , وجدت انه ياخذ رقم المسلسل ويقوم بالبحث عنه لكن ان لم يكن موجود يقوم بظهور رساله خطأ تفيد ان رقم المسلسل غير موجود

والجدول يتم افراغ البيانات الموجوده فيه , لكن فى حاله ان اريد استرجع البيانات مره اخرى

يجب اغلاق البرنامج وفتحه مره اخرى او الضغط على تغيير المستخدم وفى الحاله دى بردوا كانى بقفل البرنامج وافتحه تانى

بالصدفه طبعا ضغت على زرار مسح لقيته ظهر الجدول مره اخرى

لكن انا كنت اظن انه لافراغ المحتويات الخاصه بالحقول

انت كدا عملت الاتنين مع بعض طب فى حاله ان انا هاسجل مستفيد جديد وكتب البيانات وعاوز اشوف البيانات بتاعت الجدول فانا لازم كدا لو ضغط على زر مسح

هيمسحها علشان يظهر الجدول وهابدا تانى ادخلها

المفروض ان الجدول يكون غير قابل للتعديل , يعنى قوم بالضغط على اى خليه فالجدول تجدها قابله للتعديل ويمكن لاى احد التعديل عليها امامك لكنها طبعا لم يتم تعديلها ف قاعده البيانات

فى حاله تسديد الاشتراك

ظهر هذا الخطأ

java.sql.SQLSyntaxErrorException: Table/View 'PAYER' does not exist.

فى حاله ااضافه موزع او السداد او تغيير كلمة المرور

تجد ان النوافذ عباره عن Frames والمفترض ان تكون Dialogs لمنع المستخدم من استخدام اى من النوافذ الاخرى الا بعد اغلاق هذه النافذه

لا يجوز ان اكون بضيف موزع وبعدين اسيبها مفتوحه واسجل مستفيد جديد

والنوافذ تجدها تظهر فى اماكن اخرى يجب ان تظهر فوق النافذه الرئيسية

post-217802-092320700 1327002548_thumb.p

فى حاله رسائل الخطأ تجد انها تظهر بهذه اللغة

post-217802-001982600 1327002551_thumb.p

لانك تستخدم اللغه العربيه داخل الـClass مباشرة فهذا دائما ما يحدث خطأ فى عرض اللغه

يجد استخدامها عن طريق الـ ResourceBandle

ندخل فالكود

عندك اكواد الربط بقاعده البيانات غير مستخدم فيها اى Pattern مثل MVC

يجب ان تتعامل بمبدأ OOP كى تستطيع التعديل على البرنامج بتاعك فى وقت لاحق وبكل سهوله

يعنى مثلا هذا الكود

        try {
            Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
            DriverManager.getConnection("jdbc:derby:BreadDB;");
        } catch (Exception e) {
        }

تجده متكرر فى كل SQL Class خاصه بك فالبرنامج بتاعك

طب وليه ما تعملها فى كلاس منفصله وتقوم باستخدامها كيفما تشاء

وفى الحقيقه هو هيتم استخدامها مره واحده

لانك عندما تقوم بتحميل الـ Driver وصنع الاتصال

بعدها تقوم باستخدام الاتصال التى تعود به الداله DriverManager.getConnection

فبالتالى هى مره واحده تقوم بها بمناداه هذا الكود وبعدها تقوم باستخدم الاتصال Connection object للاتصال والتعامل مع قاعده البيانات

طبعا مش هنتكلم عن اكواد قاعده البيانات لانها تحتاج الى اعاده هيكله

يعنى بدل استخدام هذا الكود مثلا

ArrayList list1 = new ArrayList();
        ArrayList list2 = new ArrayList();
        ArrayList list3 = new ArrayList();
        ArrayList list4 = new ArrayList();
        ArrayList list5 = new ArrayList();
        ArrayList list6 = new ArrayList();

ستجد انك اذا استخدمت MVC model ستجد الامر بسيط جدا

لانك هستخدم Beans تمثل كل جدول عندك فى قاعده البيانات

و Services تتعامل مع هذه الـ Beans

بالنسبه للتعامل مع الـ DistributorComboModel

يمكن استخدامها هكذا افضل من استخدام Model والتعامل معه فى class منفصله وانت لا تريد منه غير اضافه بيانات فقط

        String[] arr = new String[names.size()];
        DefaultComboBoxModel boxModel = new DefaultComboBoxModel(names.toArray(arr));

بعد ذلك استخدم الـ boxModel فى الكود الخاص بك بدلا من استخدام Class منفصله له

يمكنك التعامل مع الـ PayerComboModel بنفس الطريقه

بالنسبه للـ PeopleSearchModel ما هو هو الـ PeopleTableModel بنفس الاعمدة ليه الاستخدام اكثر من مره

يجب ان تفصل عمليه العرض عن عمليه البحث والفحص فى قاعده البيانات

لان العرض شىء والمنطق شىء اخر

بالنسبه MyCellRenderer

يمكنك استخدام الكود التالى

table.setFont(new java.awt.Font("Traditional Arabic",0 , 18));

فى جعل الجدول بهذا الخط بدل من ان تقوم بعمل Renderer لخلايا الجدول

لكن ممكن نقول انك مستخدمها علشان تعمل محاذاه للاعمده ناحيه اليمين

setHorizontalAlignment(JTextField.RIGHT);

لها بديل ايضا ان تقوم باستخدام الكود التالى

    public static void setTableAlignmentValue(JTable table, int index, int align) {
        DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
        renderer.setHorizontalAlignment(align);
        table.getColumnModel().getColumn(index).setCellRenderer(renderer);
    }

وبناء عليه تقوم بتحديد محازاه الخلايا استخدامها هكذا مثلا

(table, 0, JLabel.RIGHT);
(table, 1, JLabel.LEFT);
(table, 2, JLabel.CENTER);

كفايه كدا حاسس انى عقدت لكن بجد دا حصل معايا فبدايه طريقى فحبيت انبههك ليكون شغلك درجه اووى

وشكرا لك على تقبلك كلامى ونصيحتى

المرفقات
111.png2.png
1

Software Developer
Mahmoudkelany.com


 

#8
Mahmoud Kelany كتب:

كفايه كدا حاسس انى عقدت لكن بجد دا حصل معايا فبدايه طريقى فحبيت انبههك ليكون شغلك درجه اووى

وشكرا لك على تقبلك كلامى ونصيحتى

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

كنت فى البداية اميل لكى ابنى كل شئ بيدي .

لكن الأن مع وجود(hibernate , annotation (ORM

ResourceBandle& property

أصبح الامر مختلف ( بالطبع وقتها لم أكن اعرف هذه التقنيات )

حتى Logger فى موضوع تحديد الأخطاء واماكن وقعها فى الكود حتى يسهل الوصول للخطأ.

استفدت منك كثيرا .. شكرا لك

تم تعديل هذه المشاركة بواسطة Eng-Khaled في 20 يناير 2012 في 02:08

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