هذا المشروع عبارة عن تطبيق رسم متكامل يسمح للمستخدمين بإنشاء رسومات فنية باستخدام مجموعة متنوعة من الأدوات والخيارات. تم تطوير التطبيق باستخدام لغة البرمجة Java مع اعتماد Object-Oriented Programming (OOP) لتصميم هيكل برمجي مرن ومنظم. يستخدم التطبيق مكتبة Java Swing/AWT لتوفير واجهة رسومية سهلة الاستخدام.
المزايا الرئيسية:
أدوات الرسم:
أداة القلم (Pencil Tool):
تتيح للمستخدم رسم خطوط حرة باليد.
طريقة التنفيذ: تم استخدام كائن Graphics لتتبع حركات الفأرة وتحديث الرسم أثناء السحب.
أداة الأشكال (Shapes Tool):
إمكانية رسم أشكال مختلفة مثل المستطيلات والدوائر.
طريقة التنفيذ: توفير خيارات متعددة للمستخدم لاختيار الشكل، مع تفعيل خاصية السحب لتحديد أبعاد الشكل.
اختيار الألوان (Color Selection):
يمكن للمستخدم اختيار الألوان من لوحة ألوان مدمجة لتطبيقها على القلم أو الأشكال.
طريقة التنفيذ: استخدام مكون JColorChooser لتحديد الألوان وتخزينها لتطبيقها في الرسم.
أنماط الرسم (Drawing Modes):
الوضع الصلب (Solid Mode): يتم رسم الأشكال بلون كامل.
الوضع المنقط (Dotted Mode): تُرسم الأشكال والخطوط كخطوط منقطة.
طريقة التنفيذ: تم تطبيق أنماط مخصصة باستخدام BasicStroke لتحديد أسلوب الخطوط.
إجراءات التعديل (Undo/Redo):
يتيح التطبيق التراجع عن العمليات السابقة أو استعادتها.
طريقة التنفيذ: يتم تخزين كل خطوة رسم في قائمة باستخدام بنية بيانات قائمة (Stack)، مع إمكانية التنقل بين الحركات.
حفظ الرسومات (Save):
حفظ العمل الفني كصورة.
طريقة التنفيذ: تم استخدام كائن BufferedImage لالتقاط محتوى اللوحة وحفظه كملف بصيغة PNG أو JPEG.
إعادة التهيئة (Clear):
يسمح للمستخدم بمسح اللوحة بالكامل للبدء من جديد.
طريقة التنفيذ: يتم إعادة تعيين محتوى اللوحة إلى حالتها الافتراضية.
التقنيات المستخدمة:
اللغة البرمجية: Java
البرمجة كائنية التوجه (OOP): لضمان تنظيم الكود وقابليته للتوسع.
المكتبة الرسومية: Java Swing/AWT.