لسلام عليكم .
- اعتذر عن الـتأخير , حيث أني لا أملك اتصال بالنت من خلال البيت .. بسبب شركة الامتصاصات السعودية .. اتصل من مقهى .
- كما أتمنى من الاخ علاء كونه صاحب الموضوع .. من تعديل عنوان الموضوع وازالة كلمة المبتدئين .. حتى يدخل الخبراء ويشاركوننا !!!
- التجربة الأولى ...
Painter Plusإضغط لإظهار المرفق- الهدف من التجربة هو الاطلاع على أهم ما نحتاج للبرنامج .. وماهي العوائق التي ستواجهنا ..
- البرنامج في المرفقات .. اسميت البرنامج Painter Plus .. كاسم مؤقت .. وكل الكلاسات تبدأ بالبادئة PP اختصارا لاسم البرنامج وليتوضح لكم الأمر .
- تصميم الكود وهندسة البرنامج سيئة .. بسبب خبرتي القليلة .. بال swing و البرمجة المرئية عموما بالجافا .. كل ما أعرفه هو ما درسته فقط .. لذلك نحتاج لشخص ( فاهم

) يساعدنا على الأقل في الأمور الخاصة بال swing ... حتى يمكن لنا( نحن الاعضاء) الاستمرار ..
- فكرة أولية .. وتحليل للبرنامج :البرنامج يتكون من خمسة أقسام رئيسية :
1- Tool Box : وسيحوي على الادوات الخاصة بالرسم .
2- Tool Bar : يحوي على ايقونات معروفة .. مثل التراجع .. والحفظ ..
3- Status Bar : شريط الحالة .. سيحوي على معلومات لوصف ما تقع عليه فأرتنا .. mouse .
4 - القائمة الرئيسية : معروفة ..
5- Canvas : وهو السطح ( جزء من النافذة ) الذي سنرسم عليه .. اسميته بهذا الاسم .. لانه متعارف عليه من بين أغلب برامج الرسم مثل photoshop .
وهو أحد أكثر الاجزاء أهمية .. ومن خلاله نحول برنامجنا من برنامج متواضع الى فوتوشوب :-) .
- نلاحظ أن ال Canvas هو عبارة عن JPanel
- لانرسم مباشرة على Canvas .. انما نرسم على جزء من الذاكرة BufferedImage .. .
- بالتالي لو رسمنا على BufferedImage نكون قد استطعنا ان نحول هذا BufferedImage الى الطابعة أو النافذة او الى ملف صورة ..
- نكون قد تحررنا من ال JPanel أو ال Canvas .. واذا أردنا تطبيق تأثير معيّن .. نجد أمامنا صورة في الذاكرة بالامكان تعديلها كيفما نريد.
سيكون الأمر شبيها بالتالي :
إضغط لإظهار المرفق- التجربة في المرفقات .. وتستطيع فتح صور .. وتخزين صور ( شكرا لك أخي علاء على المساعدة) ..
- وتستطيع اضافة بعض المؤثرات ..
- حقيقة .. ما لاحظته .. أننا نحتاج لمناقشة وتحليل عميق للبرنامج .. كيف سيتم ( تصميم كود البرنامج ) وكيف سيتم ادارة الصورة في الذاكرة .. وكيف سنقوم بعملية التراجع ) ... الخ..
- كما أننا نحتاج الى التفكير بالمستقبل :-) .. ماذا عن Layers .. كيف نبني برمنامجنا الان بحيث يمكن تطويره مستقبلا لدعم الطبقات ..
أتمنى المزيد من التحليل .. من خلال النقاط التالية ان احببتم :1- كم BufferedImage نحتاج على الاقل لنرسم عليها .. وكيف سنديرها .. قد نحتاج الى BufferedImage لنقوم بالرسم الوهمي ( الارشادي) ... لانه رسم مؤقت .. هل فهمتوا قصدي .
2- كيف سنقوم بعمل undo و redo .. فكرت بعملية Backup كامل للصورة أو جزء من الصورة .. ولكن هذا سيستنزف الذاكرة ..
3- تصميم كود البرنامج كيف سيكون .. أتوقع انه يجب ان نستعين كثيرا بالواجهات interfaces .. حتى نفصل الواجهة عن ال implementation .. حتى نستطيع أن نستقل ببرنامجنا عن الجافا ومكتباتها ..
أتمنى من الخبراء المشاركة .. واظهار ما لديهم .. لا نريد الموضوع تعليمي .. بل نريد أن تضعوا ثقلكم بهذا البرنامج
.وكل عام وأنتم بخير ,, وتقبل الله منا ومنكم الصيام والقيام ..
في المرفقات البرنامج .. قمت بنسخ كامل المجلد بما يحويه .. لعل ذلك ان يسهل عليكم استيراده من NetBeans ( قلت لكم خبرتي قليلة) ..