آموزش نحوه ی کار با TextField ها در نرم افزار نت بینز

سیده آمین ارمان

کاربر نگاه دانلود
کاربر نگاه دانلود
عضویت
2016/05/10
ارسالی ها
1,730
امتیاز واکنش
20,744
امتیاز
795
محل سکونت
البرز
پس از تکمیل UI در آموزش های قسمت های قبل، در این آموزش قصد داریم ببنیم که به چه شکل می توان داده های ورودی را از داخل TextField ها گرفته و با استفاده از دکمه Add اعمال ریاضیاتی را روی آن ها اعمال نمود.

همانطور که قبلاً گفته شد دکمه Clear این وظیفه را دارا است تا هر عددی که داخل TextField ها قرار دارد را پاک کند. حال برای ایجاد چنین Functionality یا "عملکردی" روی دکمه Clear راست کلیک کرده سپس روی گزینه Event کلیک می کنیم:

ce661e46653bfa9218f95f9efc69b25f.jpg


همانطور که در تصویر فوق می بینیم پس از کلیک کردن روی گزینه Event پنجره دیگری باز خواهد شد. از این پنجره روی گزینه Action کلیک کرده و در نهایت از پنجره ای که باز خواهد شد روی گزینه actionPerformed به معنی "کاری که صورت گرفته است" کلیک می کنیم:

67c841ab1b5509ff3a1b736ae39ab763.jpg


به محض کلیک کردن روی گزینه actionPerformed می بینیم که به صورت خودکار به Tab مربوط به Source می رویم و جایی از کد برای ما نمایش داده می شود که بایستی کدهای تکمیلی خود را اضافه کنیم. همانطور که در تصویر فوق مشخص است، کدهای مربوط به پاک کردن اعداد داخل TextField ها را می بایست در بخشی از کد اضافه کنیم که با یک مستطیل نمایش داده شده است. حال این سوال ممکن است پیش بیاید که بر چه مبنایی این بخش از کد را انتخاب کردیم. در واقع همانطور که در تصویر فوق مشخص است این دکمه دارای یک id برابر با jButton2 است و این id مرتبط با دکمه Clear است. برای اینکه از این مسئله مطمئن شویم مجدد روی Tab مربوط به Design کلیک می کنیم و روی دکمه Clear کلیک راست می کنیم:

e1f9ef4105d89d0671c70a7101204077.jpg


در ادامه روی گزینه Change Variable Name کلیک می کنیم:

ea2c15efd7bd9d3c5c03e83805a8a81d.jpg


می بینیم که نام jButton2 به صورت خودکار برای این دکمه در نظر گرفته شده است که اگر بخواهیم می توانیم آن را تغییر دهم بدهیم. مجدد به Tab مربوط به Source مراجعه می کنیم و شروع به تکمیل کد خود برای دکمه Clear می کنیم:

2a63a03bb409257eed1b40d4d5b8648d.jpg


همانطور که در تصویر فوق می بینیم id مرتبط با TextField اول jTextField1 نام دارد. این id را نوشته و متدی تحت عنوان setText(); را به آن ضمیمه می کنیم به این صورت که پس از نام id یک نقطه قرار داده سپس این متد را می نویسیم و در انتها هم یک علامت ; قرار می دهیم. هر متنی که داخل پرانتزهای این متد قرار دهیم در TextField نمایش داده خواهد شد اما از آنجا که می خواهیم TextField خالی شود فقط دو علامت “ “ داخل آن قرار می دهیم.

همین کار را برای دو فیلد دیگر هم انجام می دهیم. حال ممکن است مجدد این سوال پیش بیاید که نام های jTextField1 و jTextField2 و jTextField3 از کجا ایجاد شده اند. به همان صورت پیش می توان روی تک تک TextField ها کلیک راست کرده و روی Change Variable Name کلیک کرد تا بتوان به نام TextField مربوطه دست یافت. حال نیاز است تا برنامه خود را تست کنیم:

c8d82e158526b5c3e6510913f7934f1e.jpg


برای این منظور همانطور که در تصویر فوق مشخص است روی دکمه Run که با یک مثلث سبز رنگ نشان داده می شود کلیک می کنیم:

dfbdc5f8eaf78fd1e83c6408dc770fc3.jpg


همانطور که می بینیم در هر سه فیلد اعدادی تصادفی را وارد کرده ایم. حال به محض کلیک کردن روی دکمه Clear کلیه فیلدها پاک خواهند شد:

6593692b57539fa1aaceffb31330bc7c.jpg


در ادامه قصد داریم تا برای دکمه Add هم عملکردی تعریف کنیم. در حقیقت هر آنچه که وارد فیلدهای مرتبط با First Number و Second Number می کنیم یک String خواهد بود. حال دکمه Add وظیفه دارد تا این String ها را به متغیری از جنس عددی تبدیل کند و سپس آن ها را با یکدیگر جمع کند. در نهایت حاصلجمع را مجدد به یک String تبدیل کرده و در فیلد مربوط به Result نمایش دهد.

برای این منظور همانطور که برای دکمه Clear یک actionPerformed در نظر گرفتیم برای دکمه Add نیز این کار را انجام می دهیم:

7210e17bd65542e002ff0dbc6e118b29.jpg


همانطور که در تصویر فوق ملاحظه می شود روی دکمه Add کلیک راست کرده و از منوی Events روی Action کلیک کرده و در نهایت روی گزینه ActionPerformed کلیک می کنیم:

043195e8a08bb9f278791d2490e45624.jpg


می بینیم که به صورت خودکار کدهای مرتبط با این دکمه نمایش داده می شوند. در واقع از آنجا که id مرتبط با این دکمه برابر با jButton1 است پس می بایست به تکمیل کدهای مرتبط با این id بپردازیم:

9efd5123733476ed31a9ed6df5586417.jpg


اولین کاری که می کنیم این است که سه متغیر از جنس عدد اعشاری double تعریف می کنیم یکی تحت عنوان numberOne که مرتبط با فیلد First Number خواهد بود، یکی تحت عنوان numberTwo که مرتبط با فیلد Second Number خواهد بود و یکی هم تحت عنوان numberResult که مرتبط با فیلد Result خواهد بود.

حال نیاز است تا با استفاده از کلاس Double و متدهای مرتبط با آن String ها را به عدد اعشاری تبدیل کنیم. برای این منظور کد خود را به صورت زیر تکمیل می کنیم:

f65485c404014763261b0a07970228c6.jpg


همانطور که می بینیم ابتدا نام متغیر numberOne را نوشته و یک علامت مساوی مقابل آن قرار می دهیم. حال از آنجا که می خواهیم محتویات jTextField1 را به یک عدد اعشاری تبدیل کنیم می بایست از کلاس Double جاوا استفاده کرده و متد parseDouble را به آن ضمیمه کنیم. کاری که این کلاس و متد انجام می دهند این است که String یی که به آن اختصاص داده شود را به یک عدد اعشاری تبدیل می کنند. در ادامه می بایست داخل پرانتز مرتبط با متد parseDouble نام فیلد مربوطه را نوشته سپس متد getText() را به آن ضمیمه کنیم. کاری که این متد انجام می دهد این است که متن داخل TextField را می گیرد.

همین مراحل را برای فیلد مرتبط با Second Number هم انجام می دهیم. از این پس مقادیر متغیرهای numberOne و numberTwo اعدادی اعشاری خواهد بود که توسط کاربر وارد فیلدهای نرم افزار می شوند.

در ادامه می بایست مقادیر متغیرهای numberOne و numberTwo را با یکدیگر جمع نموده و در متغیری تحت عنوان numberResult ذخیره سازیم. برای این منظور کد فوق را به صورت زیر تکمیل می کنیم:

c04eab70447cf0b58a6d51a29be53dcb.jpg


حال می بایست مقدار به دست آمده را به فیلد مرتبط با Result اختصاص دهیم اما این در حالی است که ابتدا می بایست این متغیر اعشاری را به یک String تبدیل کنیم. برای این منظور کد فوق را به صورت زیر تکمیل می کنیم:

2deff02ce3d81c76f7fa10fd10bbc987.jpg


همانطور که می بینیم برای اختصاص دادن چیزی به یک فیلد می بایست از متدی تحت عنوان setText(); استفاده کرد. برای این منظور id مرتبط با فیلد Result را نوشته و متد setText(); را به آن ضمیمه می کنیم. اکنون چنانچه نام numberResult را داخل پرانتز بنویسیم تا مقدار اختصاص داده شده به آن به این فیلد اختصاص یابد برنامه با مشکل مواجه شد چرا که ما نمی توانیم یک متغیر از جنس double را به متد setText(); اختصاص دهیم. از اینرو ابتدا می بایست این متغیر double را به یک String تبدیل کنیم. برای این منظور از کلاس String و متد valueOf() استفاده می کنیم. به عبارت دیگر به برنامه خود دستور می دهیم تا مقدار متغیر numberResult را گرفته و آن را تبدیل به یک String کند و در نهایت آن String را به فیلدی تحت عنوان jTextField3 اختصاص دهد.

حال برنامه خود را اجرا می کنیم:

161741564101ce15d5c62316fefd6cff.jpg


در فیلد اول عدد 7 را نوشته و در فیلد دوم هم عدد 7 را مجدد می نویسیم. حال با کلیک کردن روی دکمه Add این دو عدد را با یکدیگر جمع کرده و در فیلد مرتبط با نتیجه نمایش می دهیم. علاوه بر این با کلیک کردن روی دکمه Clear هم کلیه فلیدها را پاک خواهیم کرد.
 

برخی موضوعات مشابه

بالا