به نام خدا
سلام.در این جلسه قصد داریم ادامه " آموزش ساخت پروژه برنامه نمایش عکس در جاوا " را دنبال کنیم.در جلسات گذاشته ما مفاهیم مسئله را استخراج کردیم ،ظاهر گرافیکی برنامه را طراحی کردیم و بعد سراغ کدنویسی عملیات که موجب نمایش عکس هامون در برنامه میشد رفتیم. خب در جلسه هفتم موفق به نمایش عکس ها در برنامه جاوای خود شدیم و اگر یادتون بیاد برنامه تنها یک مشکل داشت و آن فیت و مناسب نبودن اندازه عکس ها با اندازه قاب label بود.برای این که یاداوری بشه روی کلاس MainClass.java کلیک سمت راست کرده و گزینه Run را انتخب میکنیم: تصویر(1)
حالا از منو File آیتم Open را انتخاب میکنیم: تصویر(2)
حالا از محل مورد نظر از کامپیوتر عکس هامون رو انتخاب میکنیم و دکمه open را میزنیم تا عکس ها در داخل برنامه مون نمایش داده شوند: تصویر(3)
بعد از زدن دکمه open نتیجه به صورت تصویر(4) است:
خب ما سه عکس را از کامپیوتر وارد برنامه برای نمایش کردیم.برای رفتن به عکس بعد دکمه Next و برگشتن به عکس قبل دکمه Previous را میزنیم. تصویر(5)
خب تا اینجا همه چی خوبه جز یک مورد و آن اندازه عکس هایی که در jalabel1 نمایش داده ایم. عکس ها کامل و فیت و مناسب در برنامه نمایش داده نشده است.تکلیف چیست؟ باید بعد از این که عکس هامون را در کامپیوتر خواندیم اندازه آنها را تنظیم کنیم.
تنظیم سایز عکس در جاوا
برای تنظیم اندازه عکس هایی که از کامپیوتر خواندیم مطابق با سایز دلخواه خود در بدنه کلاس MainClass یک متد با نام resizeImage تعریف میکنیم که دستورات آن را در تصویر(6) نمایش داده ایم.
✔ در تصویر(6) کار متد resizeImage چیست؟ این متد یک شی از نوع کلاس Image که همان عکس مون است و دو پارامتر که یکی عرض(width) و دیگری ارتفاع(height) است از ورودی میگیرد. قرار است عکس هامون اندازش بر اساس همین عرض و ارتفاع داده شده تنظیم شود. در پایان عکسمون را بر اساس عرض و ارتفاعی که بهش دادیم تنظیم میکنه و به صورت یک فایل از نوع کلاس BufferedImage بهمون بر میگرداند.
✔ در کل به عنوان ورودی به این متد یک عکس و یک عرض و ارتفاع میدیم، و این متد عکس را بر اساس عرض و ارتفاع داده شده تنظیم میکند و بهمون میده.
✔ اگر در پروژه ای از زبان جاوا نیاز داشتید ساز عکس تون تنظیم کنید میتونید از متد با دستورات ثابت بالا استفاده کنید.
حالا از متد resizeImage در کجای برنامه برای تنظیم سایز عکس هایی که از کامپیوتر گرفتیم استفاده کنیم؟ متد resizeImage را میتوانیم در بدنه متد readImage در کلاس MainClass برای تنظیم سایز عکس های خوانده از کامپیوتر استفاده کنیم: تصویر(7)
✔ در تصویر(7) دستورات درون بدنه متد readImage را مشاهده میکنید. در خط 76 ما با صدا زدن متد resizeImage تک به تک فایل های تصویری به همراه طول و عرضی که قراره عکس هامون بر اساس آن تنظیم شود را به عنوان ورودی به متد resizeImage داده ایم و این متد تصویر تنظیم شده را بهمون بر میگرداند که دوباره درون شی im که از نوع کلاس BufferedImage است ریخته ایم.
im=resizeImage(im,pic.width, pic.height); |
✔ خب قرار است فایل تصویری مون در قاب jlabel1 به طور کامل جا بگیره و فیت بشه به عبارتی اندازه عکس هامون باید برابر اندازه jlabel1 باشد.پس باید اندازه عرض و ارتفاع عکس ها را برابر مقدار عرض و ارتفاع jlabel قرار دهیم.
✔ ما از قبل ویژگی های عرض (width) و ارتفاع(height) عکس هامون را در کلاس Picture به صورت final مقداردهی اولیه کرده ایم: تصویر(8)
✔ این عرض و ارتفاع تصاویر برابر با عرض و ارتفاع jalabel1 است.چرا چون قرار تصویرمون کامل در jlabel1 نمایش بدهیم.
✔ به همین خاطر در خط 76 تصویر(7) ما با استفاده از شی pic که از نوع کلاس Picture است متغیرهای width و height را صدا زده و مقادیرشون را درون پارامتر متد resizeImage ریخته ایم.
خب از جلسه اول تا جلسه هشتم که جلسه آخر آموزش پروژه محور ساخت برنامه نمایش عکس در جاوا هست با استخراج مفاهیم درون مسئله جاوا،طراحی ظاهر گرافیکی برنامه،کدنویسی دستورات دریافت فایل تصویری از کامپیوتر،تنظیم سایز فایل تصویری در جاوا و نمایش عکس هامون در جاوا آشنا شدیم. حالا برنامه را اجرا (Run) میکنیم ببینیم نتیجه چطور است: تصویر(9)
✔ در تصویر(9) ما سه عکس از کامپیوتر از طریق منو File و آیتم open به برنامه خود برای نمایش دادن اضاف کردیم.
✔ همان طور که در تصویر(9) مشاهده میکنید تصاویر به صورت کامل و فیت و مناسب در برنامه نمایش داده شده و با زدن دکمه های Next و Previous تصاویر به جلو یا عقب میروند.
نکته: ممکن است در طول کدنویسی ظاهر گرافیکی برنامه مثل panel ،button ها و label و.. به هم ریخته شود که کافیست با موس آنها را در جای مناسب فریم برنامه قرار دهید و از طریق بخش Properties ویژگی های انها نظیر سایز و.. را تنظیم کنید.
✔ خب تمام مفاهیمی که این پروژه جاوا از ما خواست را پیاده سازی کردیم.شما میتوانید به عنوان تمرین ظاهر گرافیکی برنامه را زیباتر کنید یا امکانات و اجزای گرافیکی دیگری بنابر خلاقیت و ایده خودتون به برنامه اضاف کنید همچنین میتوانید عملیات و امکانات برنامه را بیشتر کنید مثلا امکان نمایش اتوماتیک و خودکار برای نمایش عکس ها در برنامه درنظر بگیرید که بدون دخالت دست، عکس ها خودشون نمایش داده شوند و حرکت کنند. یا این برنامه را تبدیل به یک آلبوم عکس کنید به گونه ای که بتوانید عکس هایی که از کامپیوتر میخوانید را به صورت آلبوم، آلبوم و مجزا ذخیره کنید به گونه ای هر عکس یک کپشن (توضیح) داشته باشد همچنین برنامه توانایی جست و جو آلبوم ها و لود کردن البوم ها و نمایش آلبوم های عکس را داشته باشد.
نکته مهم: سورس کد کامل این پروژه جاوا به همراه پی دی اف آموزش براتون قرار دادم،اگر به سورس کد برنامه دسرسی ندارید به سایت WWW.JAVAPRO.IR مراجعه کنید.
پس به عنوان تمرین.....
ما قصد داریم برنامه نمایش عکس در جاوا را تبدیل به یک آلبوم عکس در جاوا کنیم به گونه ای که امکانات زیر را داشته باشد:
✔ هر مجموعه ای از عکس ها را که از کامپیوتر خوانده ایم را به عنوان یک آلبوم که دارای عنوان است را در برنامه ذخیره کنیم.
✔ مثلا عکس های فارغ تحصیلی دانشگاه هامون را به یک آلبوم تحت عنوان "عکس های فارغ تحصیلی" در برنامه ذخیره کنیم.به گونه ای که بعد از بستن برنامه و دوباره باز کردن برنامه،بتوانیم عنوان آلبوم را در برنامه جست و جو کنیم و عکس های آن را مشاهده کنیم.
✔ بتوانیم برای هر عکس از آلبوم یک کپشن یا توضیح بنویسیم و ذخیره کنیم. مثلا برای یکی از عکس های فارغ تحصلی مون کپشن "عکس بعد از فارغ تحصیلی در کنار جعفر" را مینویسیم و برای اون عکس ذخیره میکنیم.
✔ امکان نمایش عکس ها هم به صورت دستی و هم به صورت خودکار وجود داشته باشد.
✔ خب برای این که ذهنیتی در مورد پروژه تمرینی بالا داشته باشید به تصویر(10) نگاه کنید،این برنامه تمام مفاهیم بالا درونش پیاده سازی شده است.
نظرات شما بسیار برای ما مهم است ،لطفا در نظرتون رو در مورد این آموزش پروژه محور جاوا برای ما ارسال کنید.
دوست من آرزوی سعادت و کامیابی رو برات دارم،خدانگهدار
این جلسه آموزشی را میتوانید بصورت کتاب الکترونیکی (PDF شده) در لینک زیر دریافت کنید.
این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)
لینک دانلود کتاب + سورس کد این جلسه آموزشی
نشر این مطلب با ذکر منبع (لینک سایت) بلامانع است.
برای با خبر شدن از جدیدترین مطالب آموزشی جاوا عضو کانال تلگرام ما شوید.
بستن *نام و نام خانوادگی * پست الکترونیک * متن پیام |
دوره های آموزشی برنامه نویسی
انجام پروژه های برنامه نویسی
تدریس خصوصی برنامه نویسی
بیش از 7 سال از فعالیت جاواپرو میگذرد
جاواپرو دارای مجوز نشر دیجیتال از وزارت فرهنگ و ارشاد اسلامی است
جهت ارتباط مستقیم با جاواپرو در واتساپ و تلگرام :
09301904690