♨️ جلسه سوم - کلاس JLabel در جاوا
برای نمایش متن یا تصویر در برنامه گرافیکی خود از کلاس JLabel استفاده میکنیم. از ویژگی اجزای گرفیکی JLable این است که متن نمایش داده شده در آن تنها با برنامه کاربردی نوشته شده قابل تغییر است و کاربر توانایی ویرایش متن نمایش داده شده را ندارد. برای مثال در برنامه ماشین حساب ویندوز برای نمایش مقدار اعداد و نتیجه محاسبات از کلاس JLable استفاده شده است کافی است همین الان ماشین حساب ویندوز رو باز کنید متوجه خواهید شد که صفحه نمایش ماشین حساب توسط کاربر غیر قابل ویرایش و دستکاری است، اما از طریق دکمه های ماشین حساب (برنامه) قابل تغییر است این همان خاصیت label است تصویر(1)
• بخش قرمز مشخص شده در تصویر(1) که همان صفحه نمایش ماشین حساب هستش از اجزای گرافیکی label استفاده شده است.همان طور که مشاهده میکنید این متن نمایش داده شده توسط کاربر غیر قابل تغییر است اما از طریق دکمه های برنامه میتوان مقدار label را تغییر داد.تصویر(2)
سازنده های پرکاربرد کلاس JLbale :
توصیف | سازنده(constructor) |
برای ساخت یک نمونه label بدون متن و تصویر از این سازنده استفاده میشود. | JLabel() |
برای ایجاد یک label با متن خاص از این سازنده استفاده میکنیم. | JLabel(String s) |
برای ایجاد یک label با تصویر خاص از این سازنده استفاده میکنیم. | JLabel(Icon i) |
متدهای پرکاربرد کلاس JLabel :
توصیف | متد |
این متد متنی که label نمایش داده است را بر میگرداند یا به عبارت دیگر متن label ما را به ما میدهد. | String getText() |
از این متد برای نمایش متن خود در label استفاده میکنیم. | void setText(String text) |
این متد تصویر گرافیکی نمایش داده شده در label را برای ما برمی گرداند. | Icon getIcon() |
• دوستان من برای یادگیری هر مبحثی از برنامه نویسی زیاد به تئوری ها اکتفا نکنید چرا که امکان داره حتی گمراه شوید! بیشتر به نمونه مثال ها و کدهای حل شده انها توجه کنید.
مثال ها (Examples):
package swing_javalike ; import javax.swing.*; class LabelExample { public static void main(String args[]) { JFrame f= new JFrame("Label Example"); JLabel l1,l2; l1=new JLabel("First Label."); l1.setBounds(50,50, 100,30); l2=new JLabel("Second Label."); l2.setBounds(50,100, 100,30); f.add(l1); f.add(l2); f.setSize(300,300); f.setLayout(null); f.setVisible(true); } } |
خروجی:بعد از کامپایل و اجرای برنامه خروجی بصورت تصویر(3) است:
• در تصویر(3) دو label (لیبل) مشاهده میکنید که هر کدام متنی را در فریم ما نمایش داده اند.
JFrame f= new JFrame("Label Example"); |
• اجزای گرافیکی خود را روی یک اسکلت یا شاسی به نام فریم قرار میدهیم.
• در اینجا یک شی از کلاس JFrame ایجاد کرده ایم.و متنی را جایگزین پارامتر سازنده ان قرار داده ایم.که این متن جایگزین عنوان فریم ما میشود.
JLabel l1,l2; |
• تعریف دو شی از نوع کلاس JLabel
l1=new JLabel("First Label."); |
• با صدا زدن سازنده کلاس JLabel شی l1 ایجاد میشود.متن مورد نظر که قراره در لیبل ما نمایش داده شود را جایگزین پارامتر سازنده آن کرده ایم.
l1.setBounds(50,50, 100,30); |
• با استفاده از متد setBounds مختصصات و ابعاد لیبل l1 را در فریم خود مشخص میکنیم.
l2=new JLabel("Second Label."); l2.setBounds(50,100, 100,30); |
• کارایی که برای لیبل l1 انجام دادیم را برای لیبل l2 نیز انجام میدهیم.
• صدا زدن سازنده،مقدار دهی متنی که قراره در فریم نمایش داده شود و در نهایت تنظیم مختصات و ابعداد لیبل l2 در فریم
f.add(l1); f.add(l2); |
• از طریق شی f که از نوع کلاس JFrame هستش، متد add را صدا زده و اجزای گرافیکی لیبل l1 و l2 را به فریم خود اضاف میکنید.
f.setSize(300,300); f.setLayout(null); f.setVisible(true); |
• تعیین سایز و اندازه فریم خود
• چون فعلا قصد نداریم از طرح بندی خاصی برای اجزای گرافیکی خود استفاده کنیم مقدار پارامتر متد setLayout را null قرار داده ایم.
• Layout برای طرح بندی و نحوه قرار گیری خاص اجزای گرافیکی استفاده میشود.خودش یک مبحث مفصل هستش که در اینده بهش خواهیم پرداخت.
• برای نمایش فریم و تمامی اجزای گرافیکی مقدار پارامتر متد setVisible را true میکنیم.
مثال: در برنامه زیر ما یک لیبل داریم و سه دکمه (button) و هر دکمه حاوی یک مقدار عددی است، با کلیک کردن روی هر دکمه (button) مقدار عددی آن در label نمایش داده میشود.
package swing_javaike ; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; class LabelExample { public static void main(String args[]) { JFrame f = new JFrame("Label Example"); JLabel l1; l1 = new JLabel("...."); l1.setBounds(100, 50, 100, 30); JButton b1 = new JButton("1"); JButton b2 = new JButton("2"); JButton b3 = new JButton("3"); b1.setBounds(50, 150, 50, 30); b2.setBounds(100, 150, 50, 30); b3.setBounds(150, 150, 50, 30); b1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { l1.setText("1"); } }); b2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { l1.setText("2"); } }); b3.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { l1.setText("3"); } }); f.add(l1); f.add(b1); f.add(b2); f.add(b3); f.setSize(300, 300); f.setLayout(null); f.setVisible(true); } { |
خروجی: ابتدای برنامه که اجرا میشود بصورت تصویر(4) است:
با زدن دکمه شماره 2 متن label ما بصورت تصویر(5) تغییر میکند:
• همچنین با زدن هر دکه شماره مورد نظر در لیبل نمایش داده میشود.همان طور که مشاهده میکنید این متن نمایش داده شده در فریم تنها از طریق برنامه قابل تغییر است و ما نمیتوانیم مستقیم متن لیبل را ویرایش کنیم.
نکته بسیار مهم: دوستان من میدونم الان چه حسی در مورد این نوع روش طراحی رابط گرافیکی برای برنامه کاربردی خود دارید!!! خیلی خسته کننده! طاقت فرسا! کد زدن های اضافی! شاید بگید که ما به جای اصل موضوع برنامه ای که میخوایم بنویسید باید گرفتار کد زدن برای طراحی رابط گرافیکی (منظور همان دکمه ها ،لیبل ها ،فریم ،منو و...) شویم! قطعا با نظر شما موافق هستم! همان طور که در جلسات گذشته گفتم در ویرایشگر Netbeans با drag کردن اجزای گرافیکی میشه سریع دیزاین یا همون اجزای گرافیکی برنامه خود را سریع طراحی کنید! پس چرا اینقدر خودمون رو معطل میکنیم و سراغ Netbeans نمیرویم؟! خب برنامه ما به این صورت است که ابتدا با این روش طراحی اجزای گرافیکی ( کد زدن برای ایجاد اجزای گرافیکی) آشنا بشیم بعدش سراغ Netbeans خواهیم رفت :))
مثال: نمایش تصویر در یک label :
package swing_javalike ; import java.awt.event.ActionListener; import javax.swing.AbstractButton; public class Test { public static void main(String[] args) { JFrame f = new JFrame("Label Example"); } }
|
خروجی: بعد از اجرای برنامه خروجی بصورت تصویر(6) است:
• ما در این برنامه یک تصویر در پوشه پروژمون رو در label موجود در برنامه نمایش داده ایم.
• شما میتوانید یک تصویر به دلخواه خود در پوشه پروژه و همنام با "javalikeTutorial.png" برای تست قرار دهید.
• می توانیم ابعداد و مختصات تصویر و لیبل را به دلخواه تنظیم کنیم.
یکی از درخواست های شما عزیزان این است که چرا در جلسات آموزشی مثال کم میزنید؟! حق با شماست یک مبحث برنامه نویسی به مثال های فراوان نیاز دارد! خب از جهتی مثال فراوان باعث طولانی شدن و خسته کننده شدن جلسات آموزشی میشویم!خب راه کار چیست؟! ما در برنامه ای جداگانه قصد داریم انفجاری از مثال های جاوا با تنوع فراوان برای شما تولید کنیم.
پس آموزش های ما را دنبال کنید.
موفق و پیروز باشید
این جلسه آموزشی را میتوانید بصورت کتاب الکترونیکی (PDF شده) در لینک زیر دریافت کنید.
این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)
لینک دانلود
بستن *نام و نام خانوادگی * پست الکترونیک * متن پیام |
دوره های آموزشی برنامه نویسی
انجام پروژه های برنامه نویسی
تدریس خصوصی برنامه نویسی
بیش از 7 سال از فعالیت جاواپرو میگذرد
جاواپرو دارای مجوز نشر دیجیتال از وزارت فرهنگ و ارشاد اسلامی است
جهت ارتباط مستقیم با جاواپرو در واتساپ و تلگرام :
09301904690
بستن دیگر باز نشو! |