♨️جلسه بیستم - کلاس JPanel در جاوا
JPanel ساده ترین کلاس از میان اجزای (component های) گرافیکی در جاوا است. JPanel فضایی را در برنامه ایجاد کرده که هر اجزای گرافیکی را میتوان به آن اضاف کرد. JPanel را میتوان مانند بوم نقاشی تصور کرد که اجزای گرافیکی ما مانند اجزای نقاشی روی آن قرار میگیرند. خب این که میشه مانند JFrame ! ما در JFrame هم اجزای گرافیکی خود را به آن اضاف میکردیم!!!
خب JFrame تنها یک پنجره معمولی است که در برنامه های کاربردی از آن استفاده میکنیم. اما JPanel با امکاناتی که در اختیار دارد برای سازماندهی اجزای گرافیکی در جاوا بسیار مناسب است. ما از JPanel در ساخت بازی ،برنامه های کاربردی استفاده میکنیم.
یک مثال از دنیای واقعی!!!
بوم نقاشی از یک پایه و یک صفحه سفید نخی که روی آن نقاشی میکنیم تشکیل شده است. پایه بوم نقاشی را به JFrame و صفحه سفید نخی را به JPanel تشبیه میکنیم. ما در JPanel اجزای گرافیکی خود را طراحی و سازماندهی میکنیم و در نهایت روی پایه برنامه یعنی JFrame، JPanel خود را نصب ( اضاف) میکنیم. تصویر(1)
مثلا در ساخت بازی گرافیکی در جاوا، اجزای بازی خود را در JPanel طراحی میکنیم و در نهایت JPanel خود را روی JFrame قرار میدهیم. مانند بوم نقاشی.
امیدوارم توضیحات واضع و روشن بوده باشه، اگه جواب منفی است نگران نباشید مثال های مرتبط با JPanel کار کنید یواش یواش کاربردش دستتون میاد.
• سازنده های پرکاربرد کلاس JPanel :
مثال:
package javalike ; import java.awt.*; import javax.swing.*; public class PanelExample { PanelExample() { JFrame f = new JFrame("Panel Example"); JPanel panel = new JPanel(); panel.setBounds(40, 80, 200, 200); panel.setBackground(Color.gray); JButton b1 = new JButton("Button 1"); b1.setBounds(50, 100, 80, 30); b1.setBackground(Color.yellow); JButton b2 = new JButton("Button 2"); b2.setBounds(100, 100, 80, 30); b2.setBackground(Color.green); panel.add(b1); panel.add(b2); f.add(panel); f.setSize(400, 400); f.setLayout(null); f.setVisible(true); } public static void main(String args[]) { new PanelExample(); } } |
خروجی: تصویر(2)
• همان طور که در تصویر(2) مشاهده میکنید اجزای گرافیکی نظیر button ها روی panel طراحی کرده و در نهایت panel را به frame برنامه اضاف کرده ایم. JPanel کاربردهای فراوانی داره که با پایان مباحث گرافیکی در آموزش پروژه محور ازش استفاده میکنیم.
JFrame f = new JFrame("Panel Example"); |
• از کلاس JFrame شی ایجاد کرده و عنوان آن را قرار "Panel Example" میدهیم.
• همان طور که یک بوم نقاشی بدون پایه معنی ندارد، یک برنامه هم بدون JFrame که نقش اسکلت و پایه برنامه را بازی میکند بی معناست.
JPanel panel = new JPanel(); |
• مثل هر اجزای گرافیکی در جاوا برای استفاده از JPanel از آن شی ایجاد میکنیم.
• یک نکته ای که در مورد JPanel باید بدونید، یک JPanel مثل JFrame عنوان ندارد.
panel.setBounds(40, 80, 200, 200); |
• مختصات و ابعداد panel خود را تنظیم میکنیم.منظور از مختصات، نقطه ای که پنل ما در فریم برنامه قرار میگیرد.
panel.setBackground(Color.gray); |
• پس زمینه پنل خود را خاکستری انتخاب میکنیم.
1. JButton b1 = new JButton("Button 1"); 2. b1.setBounds(50, 100, 80, 30); 3. b1.setBackground(Color.yellow); |
1. یک دکمه button ایجاد کرده ایم.
2. مختصات و ابعداد دکمه خود را مشخص میکنیم.
3. پس زمینه دکمه button را زرد قرار میدهیم.
JButton b2 = new JButton("Button 2"); b2.setBounds(100, 100, 80, 30); b2.setBackground(Color.green); |
• همان کارایی که برای دکمه اول انجام دادیم برای دکمه button دوم نیز انجام میدهیم.
panel.add(b1); panel.add(b2); |
• در اینجا بجای اضاف کردن مستقیم دکمه های button خود به frame آنها را به panel برنامه اضاف کرده ایم.
f.add(panel); |
• حالا پنل خود را به فریم برنامه اضاف میکنیم.
1. f.setSize(400, 400); 2. f.setLayout(null); 3. f.setVisible(true); |
1. تعیین اندازه فریم
2. چون از مدیریت چیدمان خاصی استفاده نکردیم مقدار پارامتر این متد را null قرار داده ایم.
3. برای نمایش فریم و تمام اجزای گرافیکی این متد را صدا زده و مقدار پارامتر آن را true گذاشته ایم.
• یکی از سوالاتی که ممکنه پیش بیاد این که چرا مثال بیشتر در یک جلسه آموزشی کار نمیکنید؟
پاسخ: اگر مثال بیشتری کار کنیم، توضیحاتم بیشتر میشه و تعداد صفحات یک جلسه آموزشی بیشتر میشود در نتیجه آموزش خسته کننده میشه! خب راه کار چیست؟ ما مثال های ساده تا دشوار در همه زمینه های جاوا رو مجزا تهیه میکنیم و در سایت و کانال به اشتراک میگذاریم.
همچنین ما در هر جلسه که مثال میزنیم ،مفاهیم سایر مباحث و جلسات قبلی آموزش داده شده نیز مرور میشود. یعنی یک مثال از یک جلسه آموزشی، مفاهیم سایر جلسات را نیز در خود جای داده است. مثلا در اینجا مثال از JPanel زدیم و در آن علاوه بر مبحث JPanel مبحث JButton که در جلسات گذشته بررسی کردیم را نیز در خود جا داده بود.
• اگر تمایل دارید که مثال بیشتری در یک جلسه آموزشی کار کنیم نظر خودتون رو برامون ارسال کنید.
پیروز و موفق باشید
بستن *نام و نام خانوادگی * پست الکترونیک * متن پیام |
دوره های آموزشی برنامه نویسی
انجام پروژه های برنامه نویسی
تدریس خصوصی برنامه نویسی
بیش از 7 سال از فعالیت جاواپرو میگذرد
جاواپرو دارای مجوز نشر دیجیتال از وزارت فرهنگ و ارشاد اسلامی است
جهت ارتباط مستقیم با جاواپرو در واتساپ و تلگرام :
09301904690
بستن دیگر باز نشو! |