خلاصه مطلب
JTextArea در جاوا یکی از کلاس های گرافیکی موجود در کتابخانه Swing در جاوا است که رحمان زارعی به زبان آن را آموزش داده است..
فهرست جلسات آموزش گرافیک در جاوا
جلسه اول | معرفی Swing در جاوا
جلسه دوم | کلاس JButton در جاوا
جلسه سوم | کلاس JLabel در جاوا
جلسه چهارم | کلاس JTextField درجاوا
جلسه پنجم | کلاس JTextArea در جاوا
جلسه ششم | کلاس JPasswordField در جاوا
جلسه هفتم | کلاس JCheckBox در جاوا
جلسه هشتم | کلاس JRadioButton در جاوا
جلسه نهم | کلاس JComboBox در جاوا
جلسه دهم | کلاس JTabel در جاوا
جلسه یازدهم | کلاس JOptionPane در جاوا
جلسه دوازدهم | ساخت منو گرافیکی در جاوا
جلسه سیزدهم | کلاس JPopupMenu در جاوا
جلسه چهاردهم | کلاس JSeparator در جاوا
جلسه پانزدهم | کلاس JProgressBar در جاوا
جلسه شانزدهم | کلاس JTree در جاوا
جلسه هفدهم | کلاس JColorChooser
جلسه هجدهم | کلاس JSlider در جاوا
جلسه نوزدهم | کلاس JSpinner در جاوا
جلسه بیستم | کلاس JPanel در جاوا
جلسه بیست و یکم | کلاس JFileChooser در جاوا
جلسه بیست و دوم | کلاس JLayeredPane در جاوا
جلسه بیست و سوم | استفاده از ToolTip در جاوا
جلسه بیست و چهارم |تغییر آیکون Frame در جاوا
جلسه بیست و پنجم | کلاس Graphics در جاوا
جلسه بیست و ششم | نمایش تصویر در Swing

♨️ جلسه پنجم - کلاس 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 ; import javax.swing.*; public class TextAreaExample { TextAreaExample(){ JFrame f= new JFrame(); JTextArea area=new JTextArea("Welcome to @javalike"); area.setBounds(10,30, 200,200); f.add(area); f.setSize(300,300); f.setLayout(null); f.setVisible(true); } public static void main(String args[]) { new TextAreaExample(); }} |
خروجی: این کد را اگر در یکی از IDE های جاوا اجرا کنید خروجی بصورت زیر خواهد بود: تصویر(1)
نکته:منظور از IDE همان ویرایشگر یا محیطی است که کدهای جاوا را در آن اجرا می کنیم مثال ایکلیپس،نت بینز و...
.png)
• همان طور که در تصویر(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 ; import javax.swing.*; import java.awt.event.*; public class TextAreaExample implements ActionListener{ JLabel l1,l2; JTextArea area; JButton b; TextAreaExample() { JFrame f= new JFrame(); l1=new JLabel(); l1.setBounds(50,25,100,30); l2=new JLabel(); l2.setBounds(160,25,100,30); area=new JTextArea(); area.setBounds(20,75,250,200); b=new JButton("Count Words"); b.setBounds(100,300,120,30); b.addActionListener(this); f.add(l1);f.add(l2);f.add(area);f.add(b); f.setSize(450,450); f.setLayout(null); f.setVisible(true); } public void actionPerformed(ActionEvent e){ String text=area.getText(); String words[]=text.split("\\s"); l1.setText("Words: "+words.length); l2.setText("Characters: "+text.length()); } public static void main(String[] args) { new TextAreaExample(); } } |
خروجی: وقتی برنامه را اجرا میکنید با تصویر(2) روبرو می شوید:
.png)
حال در ناحیه سفید رنگ متن خود را تایپ می کنیم و برای شمردن تعداد کلمات و کاراکترهای متن تایپ شده و نمایش آنها روی دکمه Count Words کلیک می کنیم: تصویر(3)
.png)
توضیحات:
| public class TextAreaExample implements ActionListener{ |
• در برنامه خود قصد داریم از دکمه button استفاده کنیم و از طرفی برای دکمه خود قصد داریم عمل و رویدادی درنظر بگیریم بنابراین کلاس مون رو implements به اینترفیس ActionListener می کنیم
| JLabel l1,l2; JTextArea area; JButton b; |
• برنامه ما از دو label برای نمایش تعداد کلمات و کاراکتر ها، یک TextArea برای نمایش و ویرایش متن مورد نظر و یک button به عنوان دکمه ای که عمل خاصی را برای ما انجام می دهد.
| TextAreaExample() { JFrame f= new JFrame(); l1=new JLabel(); l1.setBounds(50,25,100,30); l2=new JLabel(); l2.setBounds(160,25,100,30); area=new JTextArea(); area.setBounds(20,75,250,200); b=new JButton("Count Words"); b.setBounds(100,300,120,30); b.addActionListener(this); f.add(l1);f.add(l2);f.add(area);f.add(b); f.setSize(450,450); f.setLayout(null); f.setVisible(true); } |
• اجزای گرافیکی خود را در سازنده کلاسمون ایجاد کرده ایم.
• در این بخش سازنده کلاس تمام اجزای گرافیکی خود نظیر 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 شده) در لینک زیر دریافت کنید.این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)لینک دانلود
.png)
.png)

