پلتفرم Java SE با محیط توسعه IDE) NetBeans) ؛ (16)

گاهی از اوقات ما از یک چیدمان کامپوننت ها زیاد استفاده می کنیم. برای اینکه از یک طراحی تکراری بپرهیزیم، کامپوننت سفارشی تعریف می کنیم تا همیشه یک دسته کامپوننت آماده داشته باشیم تا در وقت صرفه جویی کنیم. با این
يکشنبه، 27 بهمن 1392
تخمین زمان مطالعه:
موارد بیشتر برای شما
پلتفرم Java SE با محیط توسعه IDE) NetBeans) ؛ (16)
پلتفرم  Java SE  با محیط توسعه ی(IDE) NetBeans- طراحی کامپوننت(16)

 

مترجم:حبیب الله علیخانی
منبع:راسخون



 

طراحی کامپوننت

گاهی از اوقات ما از یک چیدمان کامپوننت ها زیاد استفاده می کنیم. برای اینکه از یک طراحی تکراری بپرهیزیم، کامپوننت سفارشی تعریف می کنیم تا همیشه یک دسته کامپوننت آماده داشته باشیم تا در وقت صرفه جویی کنیم. با این کار یک شی می سازیم که در پنجره ی palette یک گروه می سازد مانند گروه Swing containers و یا Swing controls.
یک پروژه ی Swing از Java Class Library می سازیم و آن را به پنجره ی palette ، add می کنیم.
فرض کنید از یک Textfield به همراه Label زیاد استفاده می کنیم. می خواهیم این دو را با هم به صورت کامپوننت سفارشی در آوریم.
ابتدا یک پروژه ایجاد می کنیم اما این بار یک Java Application ایجاد نمی کنیم، و Java Class Library به نام Label.Textfield.Lib ایجاد می کنیم:
پلتفرم  Java SE  با محیط توسعه ی(IDE) NetBeans- طراحی کامپوننت(16)
در ایجاد این نوع پروژه ها مانند پروژه های Java Application گزینه ی ایجاد تابع Main نداریم (البته در Java Application هم مشابه این است و می توانیم تابع Main را پاک کنیم).
ابتدا در این پروژه یک پکیج به نام Label.Textfield ایجاد می کنیم. در این پکیج بجای ایجاد یک کلاس Form JFrame ، یک کلاس JPanel Form می سازیم:
پلتفرم  Java SE  با محیط توسعه ی(IDE) NetBeans- طراحی کامپوننت(16)
JPanel Form ، Parent اشیا ما است. نام JPanel Form را دقیقا به نام شی ای که می خواهیم ایجاد کنیم می گذاریم (MyLabelTextfield).
این کلاس چون تابع Main ندارد، در نتیجه خروجی(output) هم ندارد و صرفا یک شی است و فضایی را اشغال کرده است. بعد از این، اشیا مورد نظرمان را در آن می چینیم:
پلتفرم  Java SE  با محیط توسعه ی(IDE) NetBeans- طراحی کامپوننت(16)
بعد از آن روی پروژه کلیک راست کرده و آن را Build می کنیم. خروجی این پروژه یک Jar فایل است و قابلیت اجرایی ندارد و فقط یک کتابخانه است.
پلتفرم  Java SE  با محیط توسعه ی(IDE) NetBeans- طراحی کامپوننت(16)
بعد از Build ، در پنجره ی output مسیری که این Jar فایل ها در آن ساخته شده است را نشان می دهد:
پلتفرم  Java SE  با محیط توسعه ی(IDE) NetBeans- طراحی کامپوننت(16)
اکنون می خواهیم این Jar فایل ها را نصب کنیم. ابتدا از مسیر زیر می رویم:
Tools> palette> Swing/AWT Components
پلتفرم  Java SE  با محیط توسعه ی(IDE) NetBeans- طراحی کامپوننت(16)
در صفحه ی باز شده از طریق گزینه ی New Category.. ، یک Category (دسته) جدید به نام My Control ایجاد می کنیم:
پلتفرم  Java SE  با محیط توسعه ی(IDE) NetBeans- طراحی کامپوننت(16)
بعد از Ok کردن همانطور که در شکل زیر می بینید، یک دسته به نام My Control ایجاد شده است. با انتخاب آن و سپس گزینه ی Add from JAR.. ، آدرس Library ای که ساخته بودیم و مسیر آن در output نشان داده شده بود را به آن وارد می کنیم.
پلتفرم  Java SE  با محیط توسعه ی(IDE) NetBeans- طراحی کامپوننت(16)
در مراحل اضافه کردن باید category ای که ساخته بودیم را انتخاب کنیم:
پلتفرم  Java SE  با محیط توسعه ی(IDE) NetBeans- طراحی کامپوننت(16)
بعد از این در هر پروژه ای که قرار بگیریم، در پنجره ی palette یک گروه دیگر به نام My control هم داریم:
پلتفرم  Java SE  با محیط توسعه ی(IDE) NetBeans- طراحی کامپوننت(16)
وقتی از آن در پروژه ها استفاده می کنیم، زمانی که به Properties می رویم، همه ی خصوصیات برای panel است و برای Textfield و Label نیستند. Label و Textfield اعضای Panel هستند. برای اینکه به آن Property اضافه کنیم، به همان پروژه ی Librarye ای که ساختیم به نام Label.Textfield.Lib می رویم و کلاس Jpanel form ای که ساختیم را باز می کنیم.
در گذشته مبحث کپسوله سازی(encapsulating) را بررسی کردیم که با آن برای کلاس های جاوا در قالب get وset ، Property می نوشتیم.
به عنوان مثال می خواهیم برای textfield یک property ای به نام Mytext بسازیم تا هر جا که از آن استفاده می کنیم بتوانیم نام آنها را تغییر دهیم.
کد های زیر را اضافه می کنیم:
پلتفرم  Java SE  با محیط توسعه ی(IDE) NetBeans- طراحی کامپوننت(16)
و همین طور برای label هم یک property به نام Mylabel می سازیم تا هر جا که از آن استفاده می کنیم بتوانیم نام آنها را تغییر دهیم.
کد های زیر را اضافه می کنیم:
پلتفرم  Java SE  با محیط توسعه ی(IDE) NetBeans- طراحی کامپوننت(16)
بعد اضافه کردن این کد ها پروژه را Build می کنیم تا Jar ها آپدیت شوند.
یک property به نام Mytext و Mylabel در پنجره ی Properties هم اضافه می شود.
استفاده از مطالب این مقاله با ذکر منبع راسخون بلامانع می باشد.



 

 



مقالات مرتبط
ارسال نظر
با تشکر، نظر شما پس از بررسی و تایید در سایت قرار خواهد گرفت.
متاسفانه در برقراری ارتباط خطایی رخ داده. لطفاً دوباره تلاش کنید.
مقالات مرتبط
موارد بیشتر برای شما
بررسی مرقع و قطاع در خوشنویسی
بررسی مرقع و قطاع در خوشنویسی
خیابانی: آقای بیرانوند! من بخواهم از نام بردن تو معروف بشوم؟ خاک بر سر من!
play_arrow
خیابانی: آقای بیرانوند! من بخواهم از نام بردن تو معروف بشوم؟ خاک بر سر من!
توضیحات وزیر رفاه در خصوص عدم پرداخت یارانه
play_arrow
توضیحات وزیر رفاه در خصوص عدم پرداخت یارانه
حمله پهپادی حزب‌ الله به ساختمانی در نهاریا
play_arrow
حمله پهپادی حزب‌ الله به ساختمانی در نهاریا
مراسم تشییع شهید امنیت وحید اکبریان در گرگان
play_arrow
مراسم تشییع شهید امنیت وحید اکبریان در گرگان
به رگبار بستن اتوبوس توسط اشرار در محور زاهدان به چابهار
play_arrow
به رگبار بستن اتوبوس توسط اشرار در محور زاهدان به چابهار
دبیرکل حزب‌الله: هزینۀ حمله به بیروت هدف قراردادن تل‌آویو است
play_arrow
دبیرکل حزب‌الله: هزینۀ حمله به بیروت هدف قراردادن تل‌آویو است
گروسی: فردو جای خطرناکی نیست
play_arrow
گروسی: فردو جای خطرناکی نیست
گروسی: گفتگوها با ایران بسیار سازنده بود و باید ادامه پیدا کند
play_arrow
گروسی: گفتگوها با ایران بسیار سازنده بود و باید ادامه پیدا کند
گروسی: در پارچین و طالقان سایت‌های هسته‌ای نیست
play_arrow
گروسی: در پارچین و طالقان سایت‌های هسته‌ای نیست
گروسی: ایران توقف افزایش ذخایر ۶۰ درصد را پذیرفته است
play_arrow
گروسی: ایران توقف افزایش ذخایر ۶۰ درصد را پذیرفته است
سورپرایز سردار آزمون برای تولد امیر قلعه‌نویی
play_arrow
سورپرایز سردار آزمون برای تولد امیر قلعه‌نویی
رهبر انقلاب: حوزه‌ علمیه باید در مورد نحوه حکمرانی و پدیده‌های جدید نظر بدهد
play_arrow
رهبر انقلاب: حوزه‌ علمیه باید در مورد نحوه حکمرانی و پدیده‌های جدید نظر بدهد
حملات خمپاره‌ای سرایاالقدس علیه مواضع دشمن در جبالیا
play_arrow
حملات خمپاره‌ای سرایاالقدس علیه مواضع دشمن در جبالیا
کنایه علی لاریجانی به حملات تهدیدآمیز صهیونیست‌ها
play_arrow
کنایه علی لاریجانی به حملات تهدیدآمیز صهیونیست‌ها