کلاس یا کامپوننت 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- بخش دوم