کلاس یا کامپوننت JTextField کلاسی است که از آن برای نوشتن یک خط، متن یا اطلاعات استفاده می شود. یکی از قابلیت های مهم JTextField این است که زمانی دکمه Enter بر روی JTextField فشار داده می شود بصورت خودکار رویداد ActionListener مربوط به آن فراخوانی می گردد.

JTextField دارای 5 سازنده است که می توان از آنها برای یک کامپوننت JTextField استفاده کرد .

public JTextField()

JTextField textField = new JTextField();

 

public JTextField (String text)

JTextField textField = new JTextField("Initial Text");

 

public JTextField(int columnWidth)

JTextField textField = new JTextField(14);

 

public JTextField (String text , int columnWidth)

JTextField textField = new JTextField("Initial Text" , 14);

 

public JTextField (Document model , String text , int columnWidth)

JTextField textField = new JTextField(aModel , null , 14);

 

خواص JTextField

کامپوننت JTextField دارای خواص متنوعی میباشد که مهمترین آنها که در اغلب برنامه های خود باید از آن استفاده کنید، به شرح جدول زیر میباشد.

نام خاصیت

نوع داده ایی

توضیحات

editable

Boolean

اگر این خاصیت با مقدار true ست شود می توان متنی که داخل JTextField قرار می گیرد را ویرایش کرد .

horizontalAlignment

int

این خاصیت موقعیت قرار گیری متن در JTextField را نشان می دهد و می تواند به یکی از صورتهای TRAILING , LEFT , RIGHT , CENTER , LEADING باشد .

dragEnabled

Boolean

اگر این خاصیت با مقدار true ست شود ، می توان عمل Drag & Drop را روی آن انجام داد.

scrollOffset

int

در زمانی که محتویات JTextField بیشتر از  اندازه آن باشد این خاصیت بصورت اتوماتیک بر اساس تعداد کاراکتر ها مقدار دهی شده و کاراکتر ها حالت scroll پیدا می کنند .

font

Font

برای تنظیم فونت JTextField از این خاصیت استفاده می شود.

enabled

boolean

از این خاصیت برای تنظیم حالت فعال و غیرفعال JTextField استفاده می شود.

focusable

boolean

اگر این خاصیت با مقدار true تنظیم گردد، JTextField می تواند Focus را قبول کند.

selectionColor

Color

با استفاده از این خاصیت می توان رنگ متن را در زمان انتخاب یا highlight تعیین کرد.

selectionEnd

int

عددی که در این خاصیت قرار می گیرد نشان می دهد که حداکثر تا کاراکتر چندم می توان عمل highlight را انجام داد.

selectionStart

int

عددی که در این خاصیت قرار می گیرد نشان می دهد که شروع highlight از کاراکتر چندم باید شروع شود.

خواندن و نوشتن فایل با استفاده از JTextField

با استفاده از متدهای  public void read(Reader in , Object description  و public void write(Writer out از کلاس JTextComponent (کلاس JTextComponent کلاس پدر برای تمام کلاسهایی است که با Text کار می کنند) شما می توانید براحتی عملیات Save و Load را بر روی هر JTextField و یا هر کامپوننت دیگر که با Text کار می کنند انجام دهید. در مثال زیر ابتدا یک فایل توسط کلاس FilerReader خوانده شده و سپس با استفاده از متد read وارد JTextfield شده است  و در قسمت بعد اطلاعات JTextField توسط متد write در فایلی دیگر نوشته خواهد شد.

        FileReader reader = null;

        try{

            reader = new FileReader("C:\\text.txt");

            jTextField1.read(reader , "Description of file");

        }catch(FileNotFoundException e){

            //....

        }catch(IOException e){

            System.err.println("Load oops");

        }finally{

            if(reader != null){

                try{

                    reader.close();

                }catch(IOException e){

                    System.err.println("Error closing file");

                    e.printStackTrace();

                }

            }

        }

      FileWriter writer = null;

        try{

            writer = new FileWriter("C:\\text.txt");

            jTextField1.write(writer);

        }catch(FileNotFoundException e){

            //....

        }catch(IOException e){

            System.err.println("Write oops");

        }finally{

            if(writer != null){

                try{

                    writer.close();

                }catch(IOException e){

                    System.err.println("Error closing file");

                    e.printStackTrace();

                }

            }

        }

تصویر زیر نمونه ای از برنامه ایجاد شده توسط کدهای فوق را نشان میدهد.

در شکل فوق با زدن دکمه Load محتویات فایل text.txt در داخل JTextField قرار داده می شود و با استفاده از دکمه Save محتویات JTextField در همان فایل ذخیره می گردد. دکمه Clear محتویات JTextField را پاک می کند. قطعه کدی که برای این دکمه باید نوشته شود تا محتویات را پاک کند بصورت زیر است:

jTextField1.setText("");

کامپوننتهای های متنی بخش گسترده ای بوده که برای راحتی خواندن و معرفی این کامپوننتها، آنها را در چند بخش قرار میدهیم.

بخش دوم: معرفی کامپوننت JTextField- بخش دوم