♨️ جلسه اول - معرفی Swing در جاوا
جاوا مجموعه ای از کتابخانه ها را برای ایجاد رابط کاربری گرافیکی فراهم کرده است.
این آموزش برای کسانی که قصد دارند برنامه های کاربردی ویندوزی و بازی با استفاده از زبان جاوا طراحی کنند بصورت ساده با گام های آسان تهیه شده است.
ما در این آموزش،گرافیک جاوا را در محیط ایکلیپس کار میکنیم.
پیشنیازهای مبحث Swing در جاوا :
قبل از شروع مطالعه این مبحث شما باید با مباحث پایه ای جاوا، کار با ویرایشگرهای (IDE) جاوا،نحوه اجرای برنامه و... آشنایی داشته باشید.
اگه اولین بار است که قصد یادگیری زبان جاوا را دارید لطفا از این مبحث صرف نظر کرده و از جلسات مقدماتی جاوا که در کانال تلگرام javalike و سایت www.javapro.irاز صفر آموزش داده شده است شروع به یادگیری کنید.
گرافیک در جاوا:
برای ایجاد برنامه های کاربردی گرافیکی مبتنی بر ویندوز ،جاوا دو پکیج در اختیار ما گذاشته است ابتدا پکیج AWT و بعدش پکیج Swing، این دو پکیج شباهت ها و تفاوت هایی باهم دارند، از آن جهتی که پکیج Swing جدیدتر هستش ما قصد داریم گرافیک در جاوا با استفاده از پکیج Swing را کار کنیم هر چند که در هنگام نوشتن پروژه اگر نیاز به بعضی از مباحث AWT داشتیم بخش های مورد نیاز آن را آموزش خواهیم داد.
برای نوشتن برنامه های گرافیکی مبحث javafx هم هستش که فعلا ما باهاش کاری نداریم!
در پکیج javax.swing کلاس هایی نظیر JButton, JTextField, JTextArea, JRadioButton, JCheckbox JMenu, JcolorChooser و... وجود دارد که به ما در نوشتن یک برنامه گرافیکی ویندوزی کمک میکنند.
برای درک بهتر این کلاس ها در پکیج javax.swing برنامه ماشین حساب در کامپیوتر را باز میکنیم:تصویر(1)
همان طور که در تصویر(1) مشاهده میکنید این برنامه ماشین حساب از چندین دکمه بر انتخاب عدد یا عملیات مورد نظر، یک صفحه برای نمایش اعداد و نتیجه عملیات،یک منو که از بخش های متنوعی تشکیل شده و هر یک کار خاصی را انجام میدهند تشکیل شده است.همه اجزای این ماشین حساب از دکمه تا اون صفحه و منوها خود یک کلاس مجزا هستند که در برنامه ماشین حساب خود استفاده کرده ایم، مثلا کلاس JButton در جاوا کار دکمه های ماشین حساب را میتوانند انجام دهند و...
بگذریم تنها هدف از این مثال پیدا کردن یک ذهنیت درمورد اجزای گرافیکی در جاوا بود در ادامه بیشتر به این اجزای گرافیکی میپردازیم.
سلسله مراتب کلاس های درون پکیج Swing را در زیر مشاهده میکنید:تصویر(2)
در تصویر(2) کلاس Object را مشاهده میکنید که پدر همه کلاس ها در جاوا است.همچنین اجزای گرافیکی در جاوا که هر کدام یک کلاس مجزا میباشند.ما با استفاده از همین کلاس هایی که در تصویر(2) مشاهده میکنید برنامه گرافیکی خود را میتونیم طراحی کنیم.
نکته بسیار مهم : یادگیری مبحث گرافیک در جاوا به صورت تئوری زیاد جالب نیست!!! از جهتی خب باید تئوری ها هم گفت!!! اما اصلا نگران نباشید! بهترین راه یادگیری مفهوم گرافیک در جاوا بررسی مثال ها و تمرینات کدنویسی در این زمینه است، پس اگر از تئوری هایی که میگم گیج کننده است اصلا نگران نشوید ما با مثال سعی میکنیم بصورت ساده این مبحث رو آموزش دهیم.
کلاس Component :
یکی از اجزای گرافیکی شکل دهنده برنامه ویندوزی ما است.
نکته: ما به هر یک از اجزای گرافیکی در جاوا یک component میگوییم.مثلا کلاس JButton یک component است.
متدهای متداول این کلاس که بصورت گسترده استفاده میشود بصورت زیر است:
میدونم مطمئنا گمراه کننده است، خودم هم قبول دارم، تنها پیشنهادی که برای یادگیری این مبحث براتون دارم به مثال هایی که براتون خواهیم زد توجه کنید. :)))
یک توضیحی از جدول بالا براتون میگم، همان طور که میدانید یک برنامه گرافیکی از اجزای گرافیکی تشکیل شده است! اجزای گرافیکی چی هستند؟! اجزای گرافیکی همان دکمه ها، لیبل ها،منوها ،دکمه های رادیویی و... که تاحالا در برنامه های موجود در کامپیوتر زیاد دیدیم!! به هر یک از این اجزای گرافیکی یک component می گوییم!
خب ما برای این که یک اجزای گرافیکی یا component را در برنامه خود استفاده کنیم نیاز هست ابتدا این اجزای گرافیکی را اضافه کنیم! مثلا ما یک فریم داریم، قصد داریم یک دکمه یا باتن را به فریم خود اضافه کنیم خب با استفاده از متد add آن را به فریم مون اضاف میکنیم که به این کار میگن اضافه کردن یک component به component دیگر! بعد نیاز هست اندازه این دکمه را مشخص کنیم بعدش طرح بندی این دکمه را مشخص کنیم یعنی بگیم کجای فریم قرار بگیر بعدش با true کردن مقدار پارامتر متد setVisible دکمه یا component ما در فریم نمایش داده میشود.
بازم نگران نباشید!!!! میریم سراغ مثال :)))
مثال های Swing :
نکته: دوستان گرافیک در جاوا مفاهیمش خیلی زیاد است و همه این ها رو نمیشه در قالب یک جلسه اورد! خب چطور یادشون بگیریم؟! ما پرکاربردترین و متداول ترین مفاهیم گرافیک در جاوا را آموزش خواهیم داد ،سایر مفاهیم در قالب پروژه اگه بهشون نیاز پیدا کردید میتونید یاد بگیرید یعنی تا زمانی که نیاز پیدا نکردید نیازی نیست بر کل مفاهیم گرافیک در جاوا مسلط باشید.
پس مهم ترین اساس یادگیری نیاز است!
خب ما میخواهیم یک برنامه گرافیکی را طراحی کنیم! اولین اجزای گرافیکی که نیاز داریم frame است، frame کارش چیه؟ ما تمام اجزای گرافیکی یا همون component ها رو روی frame سوار میکنیم! چیزی شبیه تنه موتورسیکلت! که تمای اجزای موتورسیکلت بر روی تنه آن سوار و چسبیده میشود!!
• برای ایجاد frame در جاوا دو راه وجود دارد:
1. ایجاد یک شی از کلاس Freme
2. به ارث بردن کلاس Frame
• می توانیم اجزای گرافیکی خود را درون متد main، constructor یا هر متد دیگری در کلاس خود ایجاد کنیم.
• یک مثال ساده از یک برنامه گرافیکی که از پکیج Swing استفاده شده است.
مثال:در برنامه زیر قصد داریم یک Frame ایجاد کنیم، برای این کار بصورت زیر عمل میکنیم:
package swing_javalike ; import javax.swing.*; public class FirstSwingExample { public static void main(String[] args) { JFrame f = new JFrame();// creating instance of JFrame } } |
import javax.swing.*; |
JFrame f = new JFrame(); |
package swing_javalike ; import javax.swing.*; public clas s FirstSwingExample { public static void main(String[] args) { JFrame f = new JFrame();// creating instance of JFrame f.setSize(400, 500); } } |
• در کد بالا 400 عرض و 500 ارتفاع frame ما را مشخص میکند.
خب قصد مدیریت طرح بندی برای frame خود نداریم پس مقدار پارامتر متد setLayout را null میکنیم:
package swing_javalike ; import javax.swing.*; public class FirstSwingExample { public static void main(String[] args) { JFrame f = new JFrame();// creating instance of JFrame f.setSize(400, 500); f.setLayout(null); } } |
package swing_javalike ; import javax.swing.*; public class FirstSwingExample { public static void main(String[] args) { JFrame f = new JFrame();// creating instance of JFrame f.setSize(400, 500); f.setLayout(null); f.setVisible(true); } } |
• همان طور که مشاهده میکنید در کد بالا شی ای که از کلاس JFrame ایجاد کرده ایم f نام دارد.حال با شی f متدهای مربوطه را صدا زده ایم.
خروجی این برنامه بعد از کامپایل و اجرا بصورت زیر خواهد بود:تصویر(3)
خب ما تا اینجا frame یا بقولا تنه یا اسکلت برنامه خود را ایجاد کرده ایم.خب حالا میتونید سایر اجزای گرافیکی یا component های خود را به این frame خود اضافه کنیم. خب ما قصد داریم به frame خود یک دکمه یا باتن اضافه کنیم:
• برای اضافه کردن یک دکمه یا Buttonکافی است که از کلاس JButton شی ایجاد کنیم و شی ایجاد شده از آن را به frame خود اضافه کنیم:
package swing_javalike ; import javax.swing.*; public class FirstSwingExample { public static void main(String[] args) { JFrame f = new JFrame();// creating instance of JFrame f.setSize(400, 500); f.setLayout(null); f.setVisible(true); JButton b=new JButton("click");//creating instance of JButton } } |
package swing_javalike ; import javax.swing.*; public class FirstSwingExample { public static void main(String[] args) { JFrame f = new JFrame();// creating instance of JFrame f.setSize(400, 500); f.setLayout(null); f.setVisible(true); JButton b=new JButton("click");//creating instance of JButton f.add(b);//adding button in JFrame } } |
• از طریق شی b متد add را برای اضافه شدن button به frame صدا زده ایم.
• آیا کارمون تمام شده و باید برنامه رو اجرا کنیم؟! زیاد عجله نکنید! یک کار کوچک دیگه مونده!!! ما باید عرض و ارتفاع و مختصات قرار گیری دکمه (button) خود در frame را نیز مشخص کنیم! برای تعیین عرض و ارتفاع و مختصات یک اجزای گرافیکی در جاوا از متد setBounds استفاده میکنیم:
setBounds(x, y, width, height) ; |
• پارامتر x محور xها و پارامتر y محور yها است.
• width عرض اجزای گرافیکی
• height ارتفاع اجزای گرافیکی
کد بالا رو بصورت زیر تغییر میدهیم:
package swing_javalike; import javax.swing.*; public class FirstSwingExample { public static void main(String[] args) { JFrame f = new JFrame();// creating instance of JFrame f.setSize(400, 500); f.setLayout(null); f.setVisible(true); JButton b=new JButton("click");//creating instance of JButton f.add(b);//adding button in JFrame b.setBounds(130,100,100, 40);//x axis, y axis, width, height } } |
خروجی این برنامه بصورت زیر خواهد بود:تصویر(4)
• خب ما در این مثال با نحوه ایجاد یک frame و اضافه کردن یک component نظیر button را به آن آشنا شدیم. چطور بود؟! فقط از راه مثال گرافیک رو یادبگیرید تئوری گیج کننده است.
..............ادامه این جلسه آموزشی را در لینک زیر بصورت پی دی اف شده مرتب دانلود کنید.
این جلسه آموزشی را میتوانید بصورت کتاب الکترونیکی (PDF شده) در لینک زیر دریافت کنید.
این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)
لینک دانلود
بستن *نام و نام خانوادگی * پست الکترونیک * متن پیام |
دوره های آموزشی برنامه نویسی
انجام پروژه های برنامه نویسی
تدریس خصوصی برنامه نویسی
بیش از 7 سال از فعالیت جاواپرو میگذرد
جاواپرو دارای مجوز نشر دیجیتال از وزارت فرهنگ و ارشاد اسلامی است
جهت ارتباط مستقیم با جاواپرو در واتساپ و تلگرام :
09301904690
بستن دیگر باز نشو! |