برای اینکه به طور کامل با مدیریت رویدادها در کنترل هایSwing آشنا شوید کار را با یک مثال شروع کنیم.

در جاوا کنترل رویدادها با Listener ها انجام می گیرد. یک Listener قسمتی از کد برنامه است که در صورت رخداد یک رویداد خاص مانند کلیک کردن بر روی یک JButton فعال می شود. به تمامی رویدادها در جاوا اصطلاحاً Listener گفته میشود.

استفاده از Listener برای کنترل یک رویداد (Event) شامل 3 مرحله است:

  1. ایجاد یک کلاس ساده جاوا که اینترفیس  Listener را پیاده سازی می کند.
  2. تعریف یک نمونه از کلاس Listener ایجاد شده.
  3. افزودن کلاس Lisener ایجاد شده به کنترلی که می خواهیم به رویدادی برای آن تعریف کنیم.

به عنوان مثال فرض کنیم می خواهیم یک Listener برای کامپوننت Button ایجاد کرده تا در صورت کلیک شدن یک پیغام را برای ما نشان دهد. مراحل فوق برای این مثال به صورت زیر است :

1- تعریف کلاس Listener

با توجه به اینکه کامپوننت JButton یک آبجکت از نوع ActionEvent را در هنگام کلیک شدن، ایجاد میکند، کلاس Listener ما هم باید با استفاده از آبجکت ActionListener پیاده سازی شود. کدهای این کلاس بصورت زیر میباشد:

class AnActionListener implements ActionListener {

                public void actionPerformed (ActionEvent actionEvent) {

                                System.out.println("I Was Selectd") ;

                }

}

2- ایجاد یک نمونه از کلاس Listener

اینکار همانند ایجاد یک نمونه یا Instance از کلاس ساده جاوا میباشد.کد زیر نحوه انجام اینکار را نشان میدهد:

ActionLisneter actionListener = new AnActionListener() ;

3- ثبت Listener برای کامپوننت

JButton button1 = new Jbutton("Select Me");

Button1.addActionListener(actionListener) ;

اگر کنترل JButton شما در داخل کلاس Listener ایجاد شده باشد دیگر نیازی به ایجاد یک نمونه از کلاس Listener نبوده و برای اضافه کردن Listener به کامپوننت فقط باید از کلمه this استفاده کرد. کد زیر نحوه انجام این کار را نشان می دهد .

public class YourClass Implements ActionListener  (مرحله اول){

                public void actionZPerformed (ActionEvent actionEvent) (مرحله دوم){

                                System.out.println("I Was Selectd") ;

                }

                JButton  button1 = new JButton("Select Me");

                Button1.addActionListener(this) ; (مرحله سوم)

}

برای آشنایی بیشتر با دستورات توضیح داده شده، برنامه فوق را در محیز برنامه نویسی NetBeans به عنوان اولین برنامه کاربردی توضیح می دهیم.

گام اول: پس از اجرای برنامه NetBeans از منوی File گزینه New Projects را اجرا کرده تا کادر محاوره ایی مانند تصویر زیر به شما نشان داده شود.

گام دوم: از قسمت Categories گزینه General و از قسمت Projects گزینه Java Application را انتخاب کنید . بر روی دکمه Next کلیک کرده  تا کادر محاوره ای دوم مانند تصویر زیر به شما نشان داده شود.

گام سوم: در قسمت Project Names نام پروژه خود که در این مثال ClickButton است ، را بنویسید .

گام چهارم: بر روی دکمه Finish کلیک کنید تا پروژه شما ایجاد گردد .

گام پنجم: همانطور که در تصویر زیر مشاهده می کنید یک پروژه جدید در پنجره Projects برای شما ایجاد گردیده که حاوی یک پکیج بنام clickButton است . در داخل این پکیج یک فایل جاوا بنام Main.java وجود دارد که فایل اصلی برنامه میباشد. به علت اینکه این فایل از نوع JFrame نمی باشد،  باید آنرا حذف کنید.

گام ششم: بر روی فایل Main.java کلیک راست کرده و گزینه Delete را انتخاب کنید تا فایل مورد نظر پاک شود .

گام هفتم: بر روی پکیج ClickButton کلیک راست کرده و گزینه New → JFrame Form  را مانند تصویر زیر انتخاب کنید. با این کار یک JFrame به برنامه اضافه خواهد شد.

گام هشتم:در کادر محاوه ایی که باز می شود در قسمت Class Name عبارت MainFrame را به عنوان نام Frame مورد نظر خود بنویسید.

گام نهم: تا اینجا شما یک JFrame را به برنامه اضافه کردید حال نوبت اضافه کردن یک JButton به برنامه است.

گام دهم: از پنجره Palette یک JButton را کشیده و روی JFrame ایجاد شده  قرار دهید(تصویر زیر نمایی از پنجره Palette را نشان میدهد).

گام یازدهم: برای تغییر نام Button بر روی آن کلیک کرده و گزینه Edit Text را انتخاب کرده و عبارت Click Me را همانند تصویر زیر بنویسید.

گام دوازدهم: همانطور که قبلا توضیح داده شد رویداد actionPerformed در هنگام کلیک کردن یک Button فراخوانی می شود. برای اضافه کردن این رویداد بر روی Button کلیک راست کرده و گزینه Event→Action→actionPerformed را مانند تصویر زیر انتخاب کنید. (رویداد actionPerformed در حقیقت مانند رویداد Click در سایر زیانهای برنامه نویسی است .)

گام سیزدهم: حال برای نوشتن کد مربوط به رویداد actionPerformed به قسمت Source رفته و کد زیر را در برای رویداد بنویسید.

System.err.println("Clicked Me");

دکمه F6 را زده، برروی کامپوننت Button کلیک کرده و نتیجه آنرا در پنجره output مشاهده نمائید.

نکته: یک JFrame بالا ترین سطح یک Window در برنامه های جاوا است و هر کنترل JFarme شامل یک Container است که تمامی کنترل هایی که روی فرم قرار می گیرند ، باید بر روی  Container قرار داده شوند. Container یک JFrame با استفاده از متد getContentPane و کلاس Container ایجاد می گردد . بعد از ایجاد یک Container کنترل هایی که باید روی فرم قرار بگیرند توسط متد add به آن اضافه می شوند .