تکین وب | آموزش برنامه نویسی
تکین وب | آموزش برنامه نویسی

آشنایی با کلاس JOptionPane در جاوا

۸ بهمن ۱۳۹۴

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

این امکان توسط یک کلاس در جاوا به نام JOptionPane ایجاد می شود . این کلاس توابع مختلفی دارد که در ادامه به مهترین توابع آن می پردازیم :

نمایش یک پیغام در Dialog Box

dialog box  همان پنجره ی نمایش است . برای نمایش یک عبارت در یک پنجره از تابع showMessageDialog استفاده می شود . این تابع دو پارامتر ورودی دارد . پارامتر اول null می باشد و نشاندهنده ی قرار داده شدن پنجره در مرکز صفحه نمایش می باشد و پارامتر دوم نیز عبارت یا string دلخواهی که شما می خواهید برایتان به نمایش گذاشته شود :

import javax.swing.JOptionPane ;
public class  Dialog{
    public static void main(String[] args) { 
        JOptionPane.showMessageDialog(null, "welcome to TakinWeb");
    }   
}

توجه کنید که این کلاس در پکیج javax.swing قرار دارد و باید حتما در بالای برنامه import شود .

dialog

که با زدن دکمه ی ok از حالت اجرا خارج خواهید شد .

شما می توانید با استفاده از توابع دیگری که در این کلاس قرار دارد ، شکلی که در سمت چپ این پنجره قرار دارد را تغییر دهید . حتی می توانید عنوان این پنجره را به دلخواه نامگذاری کنید :

JOptionPane.showMessageDialog(null,"Welcome to TakinWeb", "Welcome", 2);

این تابع هم نمونه ی دیگری از این کلاس می باشد . اما تفاوتی که با تابع قبلی دارد این است که چهار پارامتر ورودی دارد ; پارامتر اول همان موقعیت پنجره ، پارامتر دوم پیامی که می خواهیم نمایش دهیم ، پارامتر سوم عنوان پنجره و پارامتر بعدی برای تغییر دادن شکل سمت چپ می باشد (این پارامتر از نوع int است و از ۱ تا ۳ را می تواند بپذیرد ) :

welcome

علاوه بر این تابع توابع دیگری نیز وجود دارد که با زدن دات بعد از نام کلاس ( یا با استفاده از ctrl+space ) می توانید لیستی از آنها را مشاهده کنید . مثلا هنگامی که می خواهید برنامه ای را ببندید ، نیز برنامه ممکن است از شما بپرسد که آیا واقعا می خواهید خارج شوید ؟! و شما با زدن Yes یا NO به آن جواب می دهید . این امکان نیز توسط تابع showConfirmDialog صورت می گیرد :

JOptionPane.showConfirmDialog(null, "Do you want to exit ?");

select

 ورودی Pop-Ups

برای ایجاد یک ورودی مثلا نوشتن نام در این پنجره از تابع showInputDialog استفاده می شود . خروجی این تابع از نوع string می باشد ( می توانید هنگام مشاهده ی سایر توابع ، نوع خروجی آنها را نیز بررسی کنید . این خروجی در سمت راست تابع وجود دارد )

JOptionPane.showInputDialog(null, "What is your name?");

input

JOptionPane.showInputDialog(null, "Please Enter Your Name : ", "InputBox",3);

این تابع نیز مانند تابع بالاست با این تفاوت که می توانید هم نام پنجره و هم شکل سمت چپ را تغییر دهید .

input2

حال می خواهیم با این توابع به بررسی کد زیر بپردازیم :

package input_in_joption;
import javax.swing.JOptionPane;
public class Input_in_JOption {
    public static void main(String[] args) {
       String name = JOptionPane.showInputDialog("What is your name ?");
       String message = String.format("welcome %s to TakinWeb ", name);
       JOptionPane.showMessageDialog(null, message);
}
    }

این کد از دو تابع برای ورودی و نمایش یک نوشته استفاده می کند . همانطور که در قسمت قبل گفتیم نوع خروجی تابع showInputDialog از نوع String می باشد . پس ابتدا نامی را که کاربر وارد می کند را در یک String ذخیره می کند و با استفاده از تابع format که در کلاس String تعریف شده است ، پیغامی را به عنوان message در یک String ذخیره می کنیم تا بتوانیم از این پیغام  که به صورت string است در تابع showMessageDialog استفاده کنیم .(متد format مانند متد ()System.out.printf  است و خروجی آن از نوع String می باشد ) . بنابراین با اجرای این کد به نتایج زیر خواهید رسید :

in2

out

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

import javax.swing.JOptionPane;
public class Input_in_JOption {
    public static void main(String[] args) {
        String[] choice = {"A","B","C","D"};
          String input = (String) JOptionPane.showInputDialog(null, "Choose now :",
             "Select Item", JOptionPane.QUESTION_MESSAGE, null, choice,choice[0]);                                                         
                 System.out.println(input);
				 }
			}

در ابتدا یک آرایه از نوع String برای ایجاد item هایمان ایجاد می کنیم . سپس از تابع showInputDialog که دارای پارامترهایی برای تنظیم پنجره ی موردنظرمان تعریف شده است ، استفاده می کنیم . دقت کنید این تابع دارای یک فیلد به نام  QUESTION_MESSAGE از نوع صحیح می باشد که این فیلد در کلاس JOptionPane به صورت public تعریف شده است و چون هم final و هم static است ، می توان بدون ایجاد شیء ای از این کلاس به آن دسترسی داشت . توجه کنید که این فیلد دارای مقدار اولیه ۳ می باشد یعنی اگر به جای JOptionPane.QUESTION_MESSAGE ، مقدار ۳ را قرار دهید هم تابع به درستی کار می کند .(در بخش های بعدی به final خواهیم پرداخت . در همین حد بدانید که چرا در اینجا توانستیم بدون ایجاد یک شیء از کلاس JOptionPane به فیلدی از آن دسترسی داشته باشیم . )

دقت کنید که خروجی این تابع casting شده است . یعنی خروجی این تابع یک شیء است که با عمل casting به یک String تبدیل شده است.(برای امتحان می توانید string ای که قبل از تابع در داخل پرانتز نوشته شده است را پاک کنید و خطایی را که نمایش میدهد را ببینید .)

selectItem

قابلیت های زیادی را می توان با استفاده از این کلاس و توابع آن در برنامه هایمان ایجاد کنیم که ما در اینجا برای آشنایی به چند نمونه ی آن پرداختیم …

 در ضمن اگر اینستاگرامی هستید حتما @Takinweb را فالو کنید….

درباره ی عطیه رحمانی

کلیه ی حقوق مادی و معنوی مطالب متعلق به سایت تکین وب می باشد و کپی برداری و بازنشر آن بدون ذکر منبع کاری غیر حرفه ای و غیر اخلاقی و قابل پیگرد قانونی خواهد بود.
کانال تلگرام تکین وب