2012-01-20 13 views
8

मैं हाल ही में जावा में 2 डी गेम पर काम कर रहा हूं, और वर्तमान में इवेंट-हैंडलिंग सिस्टम सही काम करने की कोशिश कर रहा हूं। मैं एनीमेशन शुरू करने के लिए माउस क्लिक करने की कोशिश कर रहा था, और जब तक मैंने क्लिक करते समय माउस को स्थानांतरित करने की कोशिश नहीं की तब तक यह काम करता था। इस बिंदु पर कुछ भी नहीं होता है। मैं दोनों mouselistener और mousemotionlistener वर्गों का उपयोग कर रहा हूँ, और समस्या अभी भी बनी हुई है।जब माउस चल रहा है तो जावा माउस ईवेंट अनदेखा कर दिया गया है?

public class ML extends MouseAdapter{ 
    public void mouseClicked(MouseEvent m){ 
     if(m.getButton()==MouseEvent.BUTTON1) 
     guns.playOnce(); 
    } 
    public void mouseReleased(MouseEvent m){ 
     if(m.getButton()==MouseEvent.BUTTON1); 
    } 

यह एक बार छवियों के सेट खेलते हैं और रोकने के लिए एनिमेटर वर्ग कहता है: यहाँ मुख्य से कोड है। एनिमेटर माउस घटनाओं को शामिल करने से पहले पूरी तरह से काम कर रहा था। मैं यह नहीं समझ सकता कि माउस आंदोलन के दौरान यह क्यों काम नहीं करेगा यदि उस माउस आंदोलन के दौरान प्रदर्शन करने के लिए कोई निर्दिष्ट कार्रवाई नहीं है। (यदि कोई स्पष्ट समाधान है, तो मैं क्षमा चाहता हूं, मैंने जावा बहुत पहले नहीं शुरू किया था।)

उत्तर

6

जावा में, माउस केवल माउस को दबाए बिना दबाए जाने के बाद माउस को दबाया जाता है और जारी किया जाता है। अधिकांश उपयोगकर्ताओं को पूरा करना मुश्किल है, इसलिए अधिकांश यूआई तत्व (जैसे बटन) माउस प्रेस पर प्रतिक्रिया करते हैं और ईवेंट जारी करते हैं और "क्लिक" को अनदेखा करते हैं।

एक बटन के लिए, हालांकि, एक बेहतर विकल्प ActionListener इसमें जोड़ना है। फिर बटन स्वयं माउस घटनाओं को सुन देगा और यह तय करेगा कि इसे कब क्लिक किया गया है।

+0

धन्यवाद! क्लिक करने के बारे में टिप मुझे बाद में कुछ निराशा बचाएगी। – Ryan

+2

@trashgod: ठीक है, वास्तव में 'बटन मॉडल' सिर्फ राज्य को ट्रैक करता है - यह 'बटन यूआई' है जो माउस ईवेंट के लिए सुनता है और मॉडल को अपडेट करता है। –

संबंधित मुद्दे