کنترل JTextArea

کنترل JTextArea را به نوعی می توان یک JTextField در نظر گرفت با این تفاوت که در JTextField ورودی های کاربر در یک خط نوشته می شدند در حالیکه در JTextArea می توان ورودی ها را در چند خط نوشت. JTextArea دارای یک خاصیت و آن هم text می باشد. در این کنترل به صورت توکار دارای اسکرول نیست و اگر متن وارد شده توسط کاربر زیاد باشد برای مشاهده تمام متن باید از کنترل JScrollPane استفاده کرد. سازنده این کلاس به روش های زیر مقدار دهی می شود :

public JTextArea()
public JTextArea(Document document)
public JTextArea(String text)
public JTextArea(int rows, int columns)
public JTextArea(String text, int rows, int columns)
public JTextArea(Document document, String text, int rows, int columns)

این کنترل دارای خاصیت های مهم زیر می باشد :

خاصیت توضیح
Columns تعداد ستون های Textarea را مشخص می کند
lineCount تعداد خطوط Textarea را مشخص می کند
lineWrap مشخص می کند که زمانیکه به آخر یک سطر در Textarea رسیدیم بقیه متن در سطر بعدی نوشته شود یا نه
rows تعداد سطرهای Textarea را مشخص می کند
tabSize مشخص می کند که با هر بار زدن دکمه Tab نشانگر ماوس چند کاراکتر به جلو رانده شود.

متدهای مهم این کنترل هم عبارتند از :

متد توضیح
()setSelectedTextColor رنگ متن انتخاب شده را مشخص می کند.
()setSelectionColor رنگ پس زمینه متن انتخاب شده را مشخص می کند.
()select قسمتی از متن Textarea را انتخاب می کند. این متد دو عدد می گیرد که یکی نشان دهنده نقطه شروع و دیگری نشان دهنده نقطه پایان متن انتخابی است.

بیشتر متدهای کنترل Textarea برای متن انتخاب شده استفاده می شوند.برای مثال ، متد ()select متنی را که توسط کاربر انتخاب شده است را مشخص می کند :

select(selectionStart, selectionEnd)

به کد زیر توجه کنید :

   1: import java.awt.*;
   2: import javax.swing.*;
   3: 
   4: public class FrameDemo 
   5: {
   6:     public static void main(String[] args) 
   7:     {
   8:         JFrame frame1 = new JFrame("JTextArea  Demo");
   9:          
  10:         JTextArea TextArea1 = new JTextArea("JAVA programming is fun!");
  11:         
  12:         TextArea1.select(5, 16);
  13: 
  14:         JPanel Panel1 = new JPanel();
  15:         Panel1.setLayout(new BorderLayout());
  16:         Panel1.add(TextArea1, BorderLayout.CENTER);    
  17:         frame1.add(Panel1);            
  18:         frame1.setSize(356 , 263);
  19:         frame1.setVisible(true);          
  20:     }   
  21: }

در خط 10 کد بالا یک متن پیشفرض به TextArea اضافه و در خط 12 از اندیس 5 تا اندیس 16 آن را انتخاب کرده ایم. برنامه را اجرا کنید :
textarea-in-java-01
وقتی ما یک متن را انتخاب می کنیم، می توانیم متن انتخاب شده را به وسیله ی تعدادی متد که بر روی متن انتخاب شده کار می کنند قالب بندی کنیم. برای مثال،شما می توانید برای تغییر رنگ متن انتخاب شده از متد ()setSelectedTextColor استفاده کنید.همچنین می توانید برای تغییر رنگ پس زمینه ی آن از خاصیت ()setSelectionColor استفاده کنید. بعد از خط 12 کد بالا کدهای زیر را نوشته و برنامه را اجرا کنید :

TextArea1.setSelectedTextColor(Color.RED);
        
TextArea1.setSelectionColor(Color.YELLOW);

textarea-in-java-02