एक ईवेंट लिस्टनर इंटरफ़ेस उन विधियों को परिभाषित करता है जिन्हें किसी विशेष प्रकार के ईवेंट के लिए ईवेंट हैंडलर द्वारा कार्यान्वित किया जाना चाहिए जबकि ईवेंट एडाप्टर class एक EventListener . का डिफ़ॉल्ट कार्यान्वयन प्रदान करता है इंटरफ़ेस।
ईवेंट श्रोता
- द ईवेंट श्रोता घटनाओं को संभालने के लिए हर घटक की रीढ़ हैं।
- किसी विशेष इवेंट लिस्टनर . की प्रत्येक विधि एक उदाहरण के रूप में एक पैरामीटर होगा जो EventObject . का उपवर्ग है कक्षा।
- एक ईवेंट लिस्टनर इंटरफ़ेस को विस्तारित करने की आवश्यकता है और इसे j . में परिभाषित किया जाएगा ava.util पैकेज।
- कुछ EventListener इंटरफेस हैं एक्शन लिस्टनर , की लिस्टनर , माउस लिस्टनर , फोकस लिस्टनर , आइटम लिस्टनर और आदि
उदाहरण
आयात करें जेटीक्स्टफिल्ड टीएफ; जेएलएबल एलबीएल; जेबटन बीटीएन; सार्वजनिक KeyListenerTest () {फ्रेम =नया JFrame (); एलबीएल =नया जेएलएबल (); टीएफ =नया जेटीक्स्टफिल्ड (15); tf.addKeyListener (यह); बीटीएन =नया जेबटन ("साफ़ करें"); btn.addActionListener (यह); जेपीनल पैनल =नया जेपीनल (); पैनल। जोड़ें (टीएफ); पैनल.एड (बीटीएन); फ्रेम.सेटलाउट (नया बॉर्डरलाउट ()); फ्रेम.एड (एलबीएल, बॉर्डरलाउट। उत्तर); फ्रेम.एड (पैनल, बॉर्डरलाउट। दक्षिण); फ्रेम.सेटडिफॉल्टक्लोजऑपरेशन (जेफ्रेम.EXIT_ON_CLOSE); फ्रेम.सेटलोकेशन रिलेटिव टू (अशक्त); फ्रेम.सेटसाइज (300, 200); फ्रेम.सेटविजिबल (सच); } @Override public void keyTyped(KeyEvent ke) { lbl.setText ("आपने टाइप किया है" + ke.getKeyChar ()); } @Override public void keyPressed(KeyEvent ke) { lbl.setText ("आपने दबाया है" + ke.getKeyChar ()); } @Override public void keyReleased(KeyEvent ke) { lbl.setText ("आपने रिलीज़ किया है" + ke.getKeyChar ()); } @ सार्वजनिक शून्य कार्रवाई को ओवरराइड करें (एक्शनएवेंट एई) { tf.setText (""); } सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग args []) {नया KeyListenerTest (); }}आउटपुट
इवेंट एडेप्टर
- सार कक्षाओं को ईवेंट . कहा जा सकता है एडाप्टर विभिन्न कार्यक्रम प्राप्त करने के लिए।
- एक ईवेंट एडाप्टर class EventListener . में सभी विधियों का डिफ़ॉल्ट कार्यान्वयन देता है इंटरफ़ेस।
- कुछ ईवेंट एडेप्टर वर्ग हैं FocusAdapter , कीएडाप्टर , माउस एडेप्टर , विंडो एडेप्टर और आदि
उदाहरण
import java.awt.*;import java.awt.event.*;import javax.swing.*;public Class KeyAdapterTest {निजी JFrame फ्रेम; निजी जेएलएबल हेडलेबल; निजी जेएलएबल संदेश लेबल; निजी जेपीनल नियंत्रण पैनल; सार्वजनिक KeyAdapterTest () {initialUI (); } निजी शून्य इनिशियलाइज़यूआई () {फ्रेम =नया जेएफआरएएम ("कीएडाप्टर क्लास"); फ्रेम.सेटसाइज (350, 275); फ्रेम.सेटलाउट (नया ग्रिडलाउट (3, 1)); हेडलेबल =नया जेएलएबल ("", जेएलएबल। सेंटर); msgLabel =नया JLabel ("", JLabel.CENTER); msgLabel.setSize (300, 100); फ्रेम.एडविंडो लिस्टनर (नया विंडो एडेप्टर () {सार्वजनिक शून्य विंडो क्लोजिंग (विंडोइवेंट विंडोइवेंट) {सिस्टम। बाहर निकलें (0);}}); कंट्रोलपैनल =नया जेपीनल (); controlPanel.setLayout (नया FlowLayout ()); फ्रेम.एड (हेडलेबल); फ्रेम.एड (कंट्रोलपैनल); फ्रेम। जोड़ें (msgLabel); फ्रेम.सेटडिफॉल्टक्लोजऑपरेशन (जेफ्रेम.EXIT_ON_CLOSE); फ्रेम.सेटलोकेशन रिलेटिव टू (अशक्त); फ्रेम.सेटविजिबल (सच); } निजी शून्य शोमाउस एपैप्टर () {headLabel.setText ("कीएडाप्टर टेस्ट"); अंतिम जेटीक्स्टफिल्ड टेक्स्टफिल्ड =नया जेटीक्स्टफिल्ड (10); जेबटन डिस्प्लेबटन =नया जेबटन ("डिस्प्ले"); displayButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { msgLabel.setText ("आपने दर्ज किया:" + textField.getText ()); }}); textField.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { if (e.getKeyCode() ==KeyEvent.VK_ENTER) { msgLabel.setText ("आपने दर्ज किया:" + textField.getText ()); }} }); controlPanel.add(textField); controlPanel.add (डिस्प्लेबटन); फ्रेम.सेटविजिबल (सच); } सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) { KeyAdapterTest परीक्षण =नया KeyAdapterTest (); test.showMouseAppapter (); }}
आउटपुट