दिलचस्प पोस्ट
MySQL विदेशी कुंजी नल की अनुमति के लिए? क्लास पर __getitem__ को परिभाषित क्यों करता है अजगर में इसे चालू करता है? एक जर्सी आराम सेवा पर उपयोगकर्ता प्रमाणीकरण लॉग इन करने के बाद जावा EE 6 वेब अनुप्रयोग का ठीक से लॉगआउट कैसे करें <Mvc: annotation-driven /> और <context: annotation-config /> servlet में अंतर के बीच क्या है? मैं अपना स्विंग वर्कर उदाहरण कैसे ठीक से काम कर सकता हूं? एंड्रॉइड में प्रत्येक 5 सेकंड के लिए बैटरी स्तर को कैसे अपडेट किया जाए सी ++ में तार आमतौर पर '\ 0' के साथ क्यों समाप्त हो गए हैं? जहां सत्रस्ट्रॉज और स्थानीयस्टॉरेज संग्रहित है? हाल ही के ऐप से एप्लिकेशन को साफ़ कर दिया गया है भले ही सेवा जारी रखें Iquatable और बस ओवरराइड ऑब्जेक्ट के बीच अंतर क्या है। एक्वा ()? यह निर्धारित करने के लिए कि क्या कोई विशिष्ट सामान्य इंटरफ़ेस प्रकार लागू होता है क्या जावा में इनलाइन फ़ंक्शन हैं? मैं एसवीएन के साथ एक निर्देशिका को कैसे अनदेखा कर सकता हूं? कंसोल लाइन से इनपुट कैसे पढ़ा जाए?

जावा में एक कस्टम ईवेंट बनाएं

मैं जावा में ऐसा कुछ करना चाहता हूं लेकिन मुझे यह पता नहीं है:

जब ईवेंट "ऑब्जेक्ट 1 कहते हैं, हैलो '" होता है, तो ऑब्जेक्ट 2 "हैलो" कहकर उस घटना का जवाब देता है।

क्या कोई मुझे संकेत या नमूना कोड दे सकता है?

Solutions Collecting From Web of "जावा में एक कस्टम ईवेंट बनाएं"

आप शायद पर्यवेक्षक पैटर्न को देखना चाहते हैं

खुद को शुरू करने के लिए यहां कुछ नमूना कोड दिए गए हैं:

import java.util.*; // An interface to be implemented by everyone interested in "Hello" events interface HelloListener { void someoneSaidHello(); } // Someone who says "Hello" class Initiater { private List<HelloListener> listeners = new ArrayList<HelloListener>(); public void addListener(HelloListener toAdd) { listeners.add(toAdd); } public void sayHello() { System.out.println("Hello!!"); // Notify everybody that may be interested. for (HelloListener hl : listeners) hl.someoneSaidHello(); } } // Someone interested in "Hello" events class Responder implements HelloListener { @Override public void someoneSaidHello() { System.out.println("Hello there..."); } } class Test { public static void main(String[] args) { Initiater initiater = new Initiater(); Responder responder = new Responder(); initiater.addListener(responder); initiater.sayHello(); // Prints "Hello!!!" and "Hello there..." } } 

संबंधित लेख: जावा: एक कस्टम ईवेंट बनाना

आप जो चाहते हैं वह पर्यवेक्षक पैटर्न का कार्यान्वयन है आप इसे पूरी तरह से स्वयं कर सकते हैं या जावा कक्षाएं जैसे java.util.Observer और java.util.Observable

इसमें 3 अलग-अलग तरीके हैं जिन्हें आप सेट अप कर सकते हैं:

  1. Catcher अंदर Thrower
  2. Catcher अंदर Catcher Thrower
  3. इस उदाहरण Test में दूसरे वर्ग के अंदर Thrower और Catcher

काम कर रहे जिथब उदाहरण में मैं दूसरों को बस उस वर्ग के " Optional " कोड ब्लॉक को अक्षम करने की कोशिश करने के लिए विकल्प 3 का डिफ़ॉल्ट विकल्प देता हूं , जिसे आप मुख्य बनना चाहते हैं, और उस कक्षा को build.xml में ${Main-Class} वैरिएबल के रूप में सेट करना चाहते हैं build.xml फ़ाइल:

साइड कोड फेंकने पर 4 चीजें आवश्यक हैं:

 import java.util.*;//import of java.util.event //Declaration of the event's interface type, OR import of the interface, //OR declared somewhere else in the package interface ThrowListener { public void Catch(); } /*_____________________________________________________________*/class Thrower { //list of catchers & corresponding function to add/remove them in the list List<ThrowListener> listeners = new ArrayList<ThrowListener>(); public void addThrowListener(ThrowListener toAdd){ listeners.add(toAdd); } //Set of functions that Throw Events. public void Throw(){ for (ThrowListener hl : listeners) hl.Catch(); System.out.println("Something thrown"); } ////Optional: 2 things to send events to a class that is a member of the current class . . . go to github link to see this code . . . } 

कक्षा से घटनाओं को प्राप्त करने के लिए क्लास फ़ाइल में 2 चीजों की आवश्यकता होती है

 /*_______________________________________________________________*/class Catcher implements ThrowListener {//implement added to class //Set of @Override functions that Catch Events @Override public void Catch() { System.out.println("I caught something!!"); } ////Optional: 2 things to receive events from a class that is a member of the current class . . . go to github link to see this code . . . }