menusearch
javapro.ir

♨️ جلسه چهارم - کلاس JTextField درجاوا

جستجو
دوشنبه ۴ مهر ۱۴۰۱ | ۱۸:۳۲:۴۵
۱۳۹۶/۳/۱ دوشنبه
(4)
(0)
♨️ جلسه چهارم - کلاس JTextField درجاوا
♨️ جلسه چهارم - کلاس JTextField درجاوا

فهرست جلسات آموزش گرافیک در جاوا

جلسه اول | معرفی 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

 

آموزش رایگان گرافیک در زبان برنامه نویسی جاوا را در سایت جاواپرو دنبال کنید

 

♨️ جلسه چهارم - کلاس JTextField درجاوا

 

کلاس JTextField اجزای گرافیکی "متنی" است که با شی ساختن از آن به شما اجازه می‌دهد یک خط متن را ویرایش کنید.برای تصوری بهتر از این اجزای گرافیکی برنامه Notepad را باز می‌کنیم و از منو Edit گزینه Find را انتخاب می‌کنیم:تصویر(1)

آموزش گرافیک در جاوا

 


در تصویر(1) ما قصد داریم کلمه "جاوا" را در میان متن موجود در برنامه Notepad پیدا کنیم.فیلدی که در بخش find، کلمه مورد نظر را برای پیدا شدن وارد می‌کنیم همان copmponent یا اجزای گرافیکی JTextField هستش که با رنگ قرمز مشخص کرده ایم. احتمالا با همچین اجزای گرافیکی زیاد برخورد کرده باشید مثلا هنگام ثبت نام و وارد کردن اطلاعات کاربری. متنی که در این اجزای گرافیکی وارد میکنیم دارای ویژگی‌‌‌‌های زیر است:


1.    بصورت یک خط یا یک سطر است.


2.    تک متن هستش یعنی نقطه سر خط نداریم! :-) سطر بعد ندارد! یعنی نمی‌توانیم متنی وارد آن کنیم و متن جدیدی در سطر بعد وارد کنیم!


3.    بر خلاف JLabel توسط کاربر نیز قابل ویرایش هستش یعنی شما میتوانید متن مورد نظر را جایگزین متن قبل کنید.


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

 

 

سازنده‌‌‌‌های پرکاربرد کلاس JTextField :

 

توصیفسازنده(constructor)
برای ایجاد یک TextField جدید بدون پارامتر ( سفید یا همون خالی ) JTextField()
برای ایجاد یک TextField جدید با یک متن خاص JTextField(String text)
برای ایجاد یک TextField جدید با یک متن و ستون خاص  JTextField(String text, int columns)
برای ایجاد یک TextField جدید با یک ستون خاصJTextField(int columns)

 


متد‌‌‌‌های پرکاربرد کلاس JTextField :

 

متد‌‌‌‌های JTextFIeld در زبان برنامه نویسی جاوا


مثال:

 

package swing_javalike ;
import javax.swing.*;

class TextFieldExample
{
public static void main(String args[])
    {
    JFrame f= new JFrame("TextField Example");
    JTextField t1,t2;
    t1=new JTextField("Welcome to Javalike channel");
    t1.setBounds(50,100, 200,30);
    t2=new JTextField("Swing Tutorial");
    t2.setBounds(50,150, 200,30);
    f.add(t1); f.add(t2);
    f.setSize(400,400);
    f.setLayout(null);
    f.setVisible(true);
    }
    }


خروجی: تصویر(2)

آموزش گرافیک در جاوا

•    همان طور که مشاهده می‌کنید ما در این برنامه تو TextField داریم که متن دلخواه ما را نمایش می‌دهند.اگر برنامه رو اجرا کنید خواهید دید که می‌توانید متن‌‌‌‌های درون هر دو TextField را ویرایش کنید.


•    هر چقدر متن به این دو TextField اضافه کنید به سطر بعد نمی‌توانیم برویم.

 

JFrame f = new JFrame("TextField Example");
 
•    همان طور که میدانید برای ایجاد هر برنامه گرافیکی ابتدا اسکلت برنامه یعنی frame ان را ایجاد می‌کنیم.متن درون پارامتر سازنده، عنوان فریم ما را تشکیل می‌دهد.
 
JTextField t1,t2;

 

•    ایجاد دو شی از نوع کلاس JTextField


•    این دو شی null هستند و باید با صدا زدن سازنده کلاس‌ آنها را ایجاد کنیم.

t1=new JTextField("Welcome to Javalike channel");
 

•    صدا زدن سازنده کلاس JTextField و ایجاد شی با نام t1


•    پارامتر سازنده کلاس متن موجود در فیلد ما را تشکیل می‌دهد.

t1.setBounds(50,100, 200,30);


•    با استفاده از متد setBounds مختصات و ابعاد اجزای گرافیکی TextField را تنظیم می‌کنیم.


•    در این متد x=50، y=100، width=200 و height=30

t2=new JTextField("Swing Tutorial");
t2.setBounds(50,150, 200,30);
 

•    تمام کارایی که برای فیلد t1 انجام دادیم برای فیلد t2 نیز انجام می‌دهیم.

f.add(t1); f.add(t2);
f.setSize(400,400);
f.setLayout(null);
f.setVisible(true);
 

•    افزودن component ها (اجزای گرافیکی) TextField‌‌‌‌های t1 و t2 به frame خود، این کار چیزی شبیه اسکلت خانه است که بهش سایر متریال را اضافه می‌کنیم.


•    تنظیم سایز فریم خود


•    چون فعلا قصد نداریم از طرح بندی خاصی استفاده کنیم پارامتر متد setLayout را null قرار داده ایم.


•    برای نمایش فریم و تمام اجزای گرافیکی باید متد setVisible را با شی ای که از کلاس JFrame ساخته ایم صدا زده و مقدار پارامتر آن را true قرار دهیم.


تا اینجا چطور بود؟ :-) در ادامه با ما همراه شید.

 

مثال:در برنامه زیر سه TextField و دو Buttonداریم که یکی مقادیر دو فیلد اول را با هم جمع و دیگر از هم کم می‌کند و نتیجه را در فیلد سوم نمایش می‌دهد.

 

Package swing_javalike ;

import javax.swing.*;
import java.awt.event.*;

public class TextFieldEx implements ActionListener {
   JtextField tf1, tf2, tf3;
   JButton b1, b2;

   TextFieldEx() {
       Jframe f = new Jframe();
       tf1 = new JtextField();
       tf1.setBounds(50, 50, 150, 20);
       tf2 = new JtextField();
       tf2.setBounds(50, 100, 150, 20);
       tf3 = new JtextField();
       tf3.setBounds(50, 150, 150, 20);
       tf3.setEditable(false);
       b1 = new JButton(“+”);
       b1.setBounds(50, 200, 50, 50);
       b2 = new JButton(“-“);
       b2.setBounds(120, 200, 50, 50);
       b1.addActionListener(this);
       b2.addActionListener(this);
       f.add(tf1);
       f.add(tf2);
       f.add(tf3);
       f.add(b1);
       f.add(b2);
       f.setSize(300, 300);
       f.setLayout(null);
       f.setVisible(true);
   }

   public void actionPerformed(ActionEvent e) {
       String s1 = tf1.getText();
       String s2 = tf2.getText();
       int a = Integer.parseInt(s1);
       int b = Integer.parseInt(s2);
       int c = 0;
       if (e.getSource() == b1) {
           c = a + b;
       } else if (e.getSource() == b2) {
           c = a – b;
       }
       String result = String.valueOf(c);
       tf3.setText( result );
   }

   public static void main(String[] args) {
       new TextFieldEx();
   }
}

 



خروجی: بعد از اجرای برنامه خروجی بصورت زیر خواهد بود: تصویر(3)

 

آموزش JTextField در جاوا به زبان ساده


•    برای مثال اگر مقدار فیلد اول را 96 بگذاریم و مقدار فیلد دوم را 1300 بگذاریم و روی دکمه “+” کلیک کنی نتیجه در فیلد سوم 1396 خواهد شد: تصویر(4)

 

 


ساخت برنامه گرافیکی با زبان جاوا

•    همان طور که در تصویر(4) مشاهده می‌کنید TextField سوم با TextField‌‌‌‌های اول و دوم شکل متفاوتی دارد و دورش خطوط ابی رنگ و غیر قابل ویرایش است.دلیلش اینه که درهنگام کدنویسی با صدا زدن دستور مربوطه که جلوتر بهش می‌پردازیم گفتیم که فیلد سوم برای کاربر غیرقابل ویرایش کن!

 

نکته: حتما مثال‌‌‌‌های کار با گرافیک را برای خودتون در Eclipse و.. کامپایل و اجرا کنید و عملی کار کنید، چون که تئوری کار ساز نیست.

 

public class TextFieldEx implements ActionListener {


•    چون که قصد داریم از رویداد ها و اکشن ها استفاده کنیم و عملیات خاصی را به اجزای گرافیکی خود نسبت دهیم کلاس خود را implements به اینترفیس ActionListener می‌کنیم.

 

JtextField tf1, tf2, tf3;
JButton b1, b2;


•    در اینجا سه شی از نوع کلاس JTextField تعریف کرده ایم.


•    و همچنین دو شی از کلاس JButton که دکمه‌‌‌‌های ما را تشکیل می‌دهد تعریف کرده ایم.

 

TextFieldEx() {
       Jframe f = new Jframe();
       tf1 = new JtextField();
       tf1.setBounds(50, 50, 150, 20);
       tf2 = new JtextField();
       tf2.setBounds(50, 100, 150, 20);
       tf3 = new JtextField();
       tf3.setBounds(50, 150, 150, 20);
       tf3.setEditable(false);
       b1 = new JButton(“+”);
       b1.setBounds(50, 200, 50, 50);
       b2 = new JButton(“-“);
       b2.setBounds(120, 200, 50, 50);


•    در سازنده کلاس اجزای گرافیکی خود را ساخته ایم.


•    ابتدا یک frame ایجاد کرده، و سپس سازنده کلاس JTextField را برای هر کدام از اشیای t1،t2و t3 صدا زده ایم.و سپس مختصات و ابعداد TextField‌‌‌‌های خود را مشخص کرده و همچنین سازنده کلاس JButton را برای اشیای b1 و b2 صدا زده ایم.و در نهایت تنظیم مختصات و ابعداد Button‌‌‌‌های خود

 

b1.addActionListener(this);
b2.addActionListener(this);


•    همان طور که میدانید برای نسبت دادن رویداد و عملیات خاصی به یک Button با استفاده از شی ایجاد شده از کلاس JButton متد addActionListener را صدا می‌زنیم.


•    در جلسات گذشته مستقیم از اینترفیس ActionListener درون متد addActionListener شی ایجاد کرده و دستورات خودمون که قرار بود بعد از رخ دادن یک رویداد ( یک رویداد می‌تواند کلیک کردن روی دکمه Button، فشردن دکمه کیبورد یا کلیک کردن با موس باشد) اجرا شوند رو درون متد actionPerformed قرار می‌دادیم.


•    در اینجا خبری از این کار نیست یعنی بجای ایجاد مستقیم شی از اینترفیس ActionListener، کلاس خود را impelements به اینترفیس ActionListener کردیم و در بدنه کلاس خود متد actionPerformed اینترفیس ActionListener را پیاده سازی کرده و دستوراتی که قصد اجرا شدن بعد از رخ دادن هر رویدادی داریم را درون متد actionPerformed قرار می‌دهیم.


•    از آن جهت که کلاس ما یعنی TextFieldEx را implements به اینترفیس ActionListener ،کرده ایم، می‌توانیم شی ای از کلاس خود یعنی TextFieldEx را جایگزین پارامتر متد addActionListener کنیم. از طرفی بجای شی سازی از کلاسمون در این متد می‌توانیم از کلمه کلیدی this استفاده کنیم.

 

f.add(tf1);
f.add(tf2);
f.add(tf3);
f.add(b1);
f.add(b2);
f.setSize(300, 300);
f.setLayout(null);
f.setVisible(true);


•    در اینجا با استفاده از متد add اجزای گرافیکی خود را به frame اضافه می‌کنیم.


•    همچنین سایز فریم خود را تعیین می‌کنیم.


•    چون از طرح بندی خاصی نمی‌خوایم استفاده کنیم مقدار پارامتر setLayout را null قرار می‌دهیم.


•    برای نمایش فریم و تمام اجزای گرافیکی مقدار پارامتر متد setVisible را true می‌کنیم.

 

public void actionPerformed(ActionEvent e) {


•    این متد رویدادهایی که رخ می‌دهند را دریافت می‌کند و بعد متناسب با رویداد رخ داده دستوری که بهش داده ایم را اجرا می‌کند.


•    یک رویداد می‌تواند دکمه‌‌‌‌های کیبورد، موس و یا دکمه‌‌‌‌های درون برنامه مثل فشردن Button ها، آیتم‌‌‌‌های منوها و...باشد.

 

String s1 = tf1.getText();
String s2 = tf2.getText();


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


•    در اینجا متن هر کدام TextField ها درون متغیری از نوع String ریخته می‌شود.


•    مقدار یک TextField از نوع String است حتی اگر عدد وارد آن کنیم.

 

int a = Integer.parseInt(s1);
int b = Integer.parseInt(s2);



***ادامه این جلسه آموزشی را به صورت پی دی اف شده در زیر دانلود کنید:

 


این جلسه آموزشی را می‌توانید بصورت کتاب الکترونیکی (PDF شده) در لینک زیر دریافت کنید.
این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)

آموزش آسان و ساده زبان برنامه نویسی جاوا

لینک دانلود

 

آموزش زبان جاواآموزش زبان جاوا


نشر این مطلب با ذکر منبع (لینک سایت) بلامانع است.
برای با خبر شدن از جدیدترین مطالب آموزشی جاوا عضو کانال تلگرام ما شوید.
نظرات کاربران
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

بستن
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

7 نظر
امیر ححح
پنج شنبه بیست و پنجم دی ۹۹
پاسخ
()
()
امیر ححح
سلام من وقتي عکس پشت زمينه ميزارم دکمه ها رو نشون نميده ميتونين راهنمايي کنين
الهام عابدی
جمعه چهارم مهر ۹۹
پاسخ
()
()
الهام عابدی
خيلييييي عالي و با جزئيات کامل گفته شده .ممنون خسته نباشيد
پاسخ مدیر سایت
سلام.سلامت باشین، خوش حالم :-)
پاسخ مدیر سایت
Fatemeh
سه شنبه بیست و چهارم تیر ۹۹
پاسخ
()
()
Fatemeh
خيلي مطالب راحت و روان هست. ممنون
سپهر
یکشنبه یازدهم خرداد ۹۹
پاسخ
(0)
()
سپهر
ممنونم بابت توضيحات ساده و روونتون
پاسخ مدیر سایت
سلام.خواهش میکنم سپهر جان :)
پاسخ مدیر سایت
فاطمه
سه شنبه بیستم اسفند ۹۸
پاسخ
(0)
()
فاطمه
سلام مباحث رو خيلي خوب توضيح داديدمن ترم دو کامپيوتر دانشگاه فردوسيم تو اين مدت که دانشگاه تعطيله دارم مبحث گرافيک جاوا رو از اين سايت ياد ميگيرم سپاسگزارم
پاسخ مدیر سایت
سلام.خوش حالم ;-)
پاسخ مدیر سایت
دیانا محبی
یکشنبه بیست و هشتم مهر ۹۸
پاسخ
()
()
دیانا محبی
عزيزم خيلي خوب بود خوشحالم که وب سايتتون رو کشف کردم
پاسخ مدیر سایت
سلام.از نظر لطف شما سپاسگزارم
پاسخ مدیر سایت
مجتبی موقوفه
دوشنبه بیست و هشتم مرداد ۹۸
پاسخ
()
()
مجتبی موقوفه
بسيار بسيار عالي. خدا قوت
پاسخ مدیر سایت
سلام.از نظر لطفتون سپاسگزارم
پاسخ مدیر سایت
هدر سایت
زودتر از دیگران از جدیدترین مطالب آموزشی برنامه نویسی جاواپرو اطلاع پیدا کن
 شاید برای شما کم اهمیت باشد; اما حمایت مالی به جاواپرو جان می‌دهد
سوالات متداول برنامه نویسی