♨️ جلسه پنجم - کلاس JTextArea در جاوا
سخن نویسنده:
در این جلسه قصد داریم یکی از اجزا (component) گرافیکی جاوا را بررسی کنیم.ما در مبحث گرافیک تک به تک اجزا مختلف گرافیک جاوا رو بصورت جلسات مجزا یاد خواهیم گرفت و در نهایت با آموزش پروژه محور از این اجزای گرافیکی برنامه های کاربردی و بازی خواهیم ساخت پس تا رسیدن به مرحله آموزش پروژه محور ما را دنبال کنید.
کلاس JTextArea :
همان طور که میدانید تمامی اجزای گرافیکی (component) در جاوا هر کدام یک کلاس هستند و ما با ایجاد شی به تعداد دلخواه از آنها ،در برنامه خود ازشون استفاده میکنیم.
وقتی از کلاس JTextArea شی ایجاد میکنیم یک ناحیه ای برای نمایش متن ایجاد میشود.این ناحیه متنی ایجاد شده بر خلاف TextField چندخطی یا چند سطری است، یعنی میتوان بعد از پایان سطر اول به سطر دوم و... برای نوشتن متن برویم. همچنین شی ایجاد شده از کلاس JTextArea به ما اجازه ویرایش تمام خطوط را میدهد.
پس کلاس JTextArea ویژگی های زیر را دارا است:
1. برای نمایش متن استفاده میشود.
2. یک متن را میتوان در چند سطر در آن قرار دهیم.
3. متن های داخل آن قابل ویرایش میباشند.
سازنده های پرکاربرد کلاس JTextArea :
توصیف | سازنده(constructor) |
برای ایجاد یک ناحیه متنی خالی استفاده میشود. | JTextArea() |
برای ایجاد یک ناحیه متنی با متن مورد نظر استفاده میشود. | JTextArea(String s) |
برای ایجاد یک ناحیه متنی با تعداد سطر و ستون مشخص و نمایش بدون متن استفاده میشود. | JTextArea(int row, int column) |
برای ایجاد یک ناحیه متنی با تعداد سطر و ستون مشخص و همچن نمایش متن مورد نظر استفاده میشود. | JTextArea(String s, int row, int column) |
متدهای پر کاربرد کلاس JTextArea :
توصیف | متد |
برای مقداردهی کردن تعداد سطر مشخص استفاده میشود. | void setRows(int rows) |
برای مقداردهی کردن تعداد ستون مشخص استفاده میشود. | void setColumns(int cols) |
برای ست کردن فونت مورد نظر استفاده میشود | void setFont(Font f) |
برای درج کردن یک متن مشخص در نقطه خاصی از ناحیه متنی استفاده میشود | void insert (String s, int position) |
مثال: بهترین راه یادگیری گرافیک در جاوا دیدن و حل کردن مثال های فراوان است.
package swing_javalike ; } |
خروجی: این کد را اگر در یکی از IDE های جاوا اجرا کنید خروجی بصورت زیر خواهد بود: تصویر(1)
نکته:منظور از IDE همان ویرایشگر یا محیطی است که کدهای جاوا را در آن اجرا میکنیم مثال ایکلیپس،نت بینز و...
• همان طور که در تصویر(1) مشاهده میکنید متن ما در ناحیه ای سفید رنگ نمایش داده شده است که این متن قابل ویرایش است.
TextAreaExample(){ JFrame f= new JFrame(); JTextArea area=new JTextArea("Welcome to @javalike"); } |
• در سازنده کلاس یک شی از کلاس JFrame با نام f ایجاد کرده ایم. همان طور که میدانید frame نقش اسکلت یک برنامه را بازی میکند و ما سایر اجزای گرافیکی را روی فریم میچسبانیم.
JTextArea area=new JTextArea("Welcome to @javalike "); |
• برای ایجاد یک ناحیه متنی در فریم خود از کلاس JTextArea شی ایجاد کرده و متنی را به عنوان پارامتر به سازنده آن داده ایم که در ناحیه متنی نمایش داده میشود.
area.setBounds(10,30, 200,200); f.add(area); f.setSize(300,300); |
• کارهای ثابتی که برای هر اجزای گرافیکی باید انجام دهیم برای TextArea نیز انجام میدهیم.نظیر تنظیم مختصات و عرض و ارتفاع آن،اضافه کردن اجزای گرافیکی به فریم،تنظیم اندازه فریم و.....
f.setLayout(null); |
• چون قصد نداریم از طرح بندی خاصی استفاده کنیم مقدار پارامتر این متد را null قرار میدهیم.
f.setVisible(true); |
• برای نمایش فریم و تمامی اجزای گرافیکی باید مقدار پارامتر این متد true باشد.
مثال: برنامه زیر تعداد کلمات و تعداد کاراکترها (حروف) یک متن را میشمارد:
package javalike ;
|
خروجی: وقتی برنامه را اجرا میکنید با تصویر(2) روبرو میشوید:
حال در ناحیه سفید رنگ متن خود را تایپ میکنیم و برای شمردن تعداد کلمات و کاراکترهای متن تایپ شده و نمایش آنها روی دکمه Count Words کلیک میکنیم: تصویر(3)
توضیحات:
public class TextAreaExample implements ActionListener{ |
• در برنامه خود قصد داریم از دکمه button استفاده کنیم و از طرفی برای دکمه خود قصد داریم عمل و رویدادی درنظر بگیریم بنابراین کلاس مون رو implements به اینترفیس ActionListener میکنیم
JLabel l1,l2; JTextArea area; JButton b; |
• برنامه ما از دو label برای نمایش تعداد کلمات و کاراکتر ها، یک TextArea برای نمایش و ویرایش متن مورد نظر و یک button به عنوان دکمه ای که عمل خاصی را برای ما انجام میدهد.
TextAreaExample() { |
• اجزای گرافیکی خود را در سازنده کلاسمون ایجاد کرده ایم.
• در این بخش سازنده کلاس تمام اجزای گرافیکی خود نظیر label، TextArea و... را صدا زده ایم.
• همچنین مختصات و ابعاد اجزای گرافیکی خود را با متد setBounds مشخص کرده ایم.
b.addActionListener(this); |
• شی b دکمه ما را تشکیل میدهد.حالا قصد داریم عمل خاصی را به دکمه خود نسبت دهیم برای این کار متد addActionListener را صدا زده و کلمه کلیدی this که در اینجا معادل شی از کلاسی است که در آن قرار داریم را به عنوان پارامتر به این متد داده ایم.
• دلیل این که از کلمه this استفاده کردیم بصورت زیر است:
از انجایی که کلاس خود را implements به اینترفیس ActionListener کردیم دیگر نیازی نیست در پارامتر متد addActionListener از اینترفیس ActionListener مستقیم شی ایجاد کنیم.تنها کافیست شی ای از کلاسی که implements به اینترفیس ActionListener شده است را جایگزین پارامتر متد addActionListener کنیم که در اینجا کلمه کلیدی this به شی کلاسی که در آن قرار داریم اشاره دارد.
میدونم شاید باز گنگ باشه توضیح! به طور کلی هروقت خواستیم در کلاسمون یک دکمه یا اجزای گرافیکی که عملی خاص را با کلیک کردن روی آن برامون انجام بده را ایجاد کنیم موارد زیر را به صورت ثابت در برنامون انجام میدهیم.
1. کلاسی که قصد داریم برای اجرای یک عمل خاص، یک button یا هر اجزای گرافیکی دیگری در آن تعریف کنیم، implements به اینترفیس ActionListener میکنیم.
public class TextAreaExample implements ActionListener{ |
2. با شی ایجاد شده از button یا هر اجزای گرافیکی که قراره با کلیک کردن روی آن عمل خاصی را اجرا کند متد addActionListener را صدا میزنیم.
public class TextAreaExample implements ActionListener{ |
3. شی ای از کلاسی که در آن قرار داریم را جایگزین پارامتر متد addActionListener می کنیم.همچنین میتوانیم به جای ایجاد شی از کلاس از کلمه کلیدی this که در اینجا اشاره به شی کلاس دارد استفاده کنیم.
b.addActionListener(this); |
4. دستورات و عملیاتی را که قصد داریم هنگام کلیک کردن روی button یا هر اجزای گرافیکی اجرا شود را درون متد زیر قرار میدهیم:
public void actionPerformed(ActionEvent e){ f.add(l1);f.add(l2);f.add(area);f.add(b); |
ادامه این جلسه آموزشی را به صورت پی دی اف و مرتب شده در زیر دانلود کنید:
این جلسه آموزشی را میتوانید بصورت کتاب الکترونیکی (PDF شده) در لینک زیر دریافت کنید.
این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)
لینک دانلود
بستن *نام و نام خانوادگی * پست الکترونیک * متن پیام |
دوره های آموزشی برنامه نویسی
انجام پروژه های برنامه نویسی
تدریس خصوصی برنامه نویسی
بیش از 7 سال از فعالیت جاواپرو میگذرد
جاواپرو دارای مجوز نشر دیجیتال از وزارت فرهنگ و ارشاد اسلامی است
جهت ارتباط مستقیم با جاواپرو در واتساپ و تلگرام :
09301904690
بستن دیگر باز نشو! |