Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Java

जावा में इवेंट श्रोता इंटरफ़ेस और इवेंट एडेप्टर क्लास के बीच क्या अंतर हैं?


एक ईवेंट लिस्टनर इंटरफ़ेस उन विधियों को परिभाषित करता है जिन्हें किसी विशेष प्रकार के ईवेंट के लिए ईवेंट हैंडलर द्वारा कार्यान्वित किया जाना चाहिए जबकि ईवेंट एडाप्टर 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 (); }}

आउटपुट

जावा में इवेंट श्रोता इंटरफ़ेस और इवेंट एडेप्टर क्लास के बीच क्या अंतर हैं?


  1. जावा में JTextField और JTextArea के बीच क्या अंतर हैं?

    JTextField . के बीच मुख्य अंतर और JTextArea जावा में यह है कि एक JTextField पाठ की एक पंक्ति . में प्रवेश करने की अनुमति देता है GUI एप्लिकेशन में जबकि JTextArea पाठ की एक से अधिक पंक्तियाँ entering दर्ज करने की अनुमति देता है GUI एप्लिकेशन में। JTextField एक JTextFeld सबसे महत्वपूर्ण घटकों म

  1. जावा में JFrame और JDialog में क्या अंतर हैं?

    जेफ्रेम फ्रेम में जोड़े गए घटकों को इसकी सामग्री के रूप में संदर्भित किया जाता है, इन्हें contentPane द्वारा प्रबंधित किया जाता है . JFrame . में एक घटक जोड़ने के लिए , हमें इसके contentPane . का उपयोग करना चाहिए इसके बजाय। एक JFrame शीर्षक . के साथ एक विंडो है , सीमा , (वैकल्पिक) मेनू बार और उप

  1. Java में GridLayout और GridBagLayout में क्या अंतर हैं?

    एक ग्रिडलेआउट सभी घटकों को एक आयताकार ग्रिड में रखता है और समान आकार के आयतों . में विभाजित किया जाता है और प्रत्येक घटक को एक आयत के अंदर रखा जाता है जबकि GridBagLayout एक लचीला . है लेआउट प्रबंधक जो घटकों को लंबवत और क्षैतिज रूप से . संरेखित करता है यह आवश्यक नहीं है कि घटक समान आकार के हों।