2010-09-13 11 views
8

मैं स्कैला स्विंग का उपयोग कर एक स्कैला आवेदन लिख रहा हूं। जब भी माउस क्लिक किया जाता है, तो अधिसूचित होने के लिए मैं MouseClicked के लिए सुन सकता हूं, लेकिन मुझे कैसे पता चलेगा कि कौन सा बटन दबाया गया था। प्रलेखन बहुत खराब है, इसलिए मैंने MouseEvent के लिए जावा प्रलेखन में देखा है, जो कहता है कि कुंजी को संशोधक फ़ील्ड से पुनर्प्राप्त किया जा सकता है, इसलिए मैंने स्केल MouseClicked ईवेंट के संशोधक फ़ील्ड को आउटपुट करने का प्रयास किया, जो कि एक पूर्ण क्लिक के लिए पूर्णांक, 0 बाएं क्लिक के लिए, माउस बटन 3 और माउस बटन 4 और 256।स्कैला MouseEvent - कैसे पता चलेगा कि कौन सा बटन दबाया गया था?

ऐसा लगता है कि अगर यह केवल बाएं और दाएं क्लिक के बीच अंतर जानने की आवश्यकता है, तो क्या मैं यह सुनिश्चित कर सकता हूं कि संशोधक सभी तरीकों से इस तरह से काम करते हैं? प्रलेखन कुछ भी नहीं कहता है, और जो मुझे पता है कि संशोधक के लिए अन्य चीजों से प्रभावित किया जा सकता है, बस माउस बटन दबाए गए थे। मैं बाएं क्लिक और माउस बटन 3 और 4 के बीच का अंतर भी जानना चाहूंगा। मुझे नहीं लगता कि उपयोगकर्ता उन्हें बाएं क्लिक के समान काम करने की उम्मीद करते हैं।

स्कैला दस्तावेज़ में MouseButtonEvent है, क्या इसका उपयोग किसी भी चीज़ के लिए किया जा सकता है? प्रलेखन कुछ भी नहीं करता है इसके बारे में कुछ भी नहीं करता है।

उत्तर

5

जावा मैपिंग प्राप्त करने के लिए आप हमेशा x.peer.getButton का उपयोग कर सकते हैं (जहां x आपका स्कैला MouseClicked ईवेंट है)। peer लगभग हमेशा जावा क्लास के बराबर जावा होता है - और यह इस मामले में करता है।

+0

स्कैला प्लगइन के साथ ग्रहण संकलित नहीं होगा, जब मेरे पास यह मेरे कोड में है: e.peer.BUTTON1 जो मैंने पढ़ा है, मैं अपने स्कैला कोड में स्थिर फ़ील्ड तक पहुंचने में सक्षम होना चाहिए। क्या मैं कुछ गलत कर रहा हूं, या मुझे एक और आईडीई मिलनी चाहिए? –

+1

आपको कक्षा के माध्यम से उन्हें एक्सेस करना होगा, उदाहरण के माध्यम से नहीं: 'अगर (e.peer.getButton == java.awt.event.MouseEvent.BUTTON1)', उदाहरण के रूप में। –

+0

धन्यवाद ... मैं इसे पूरी तरह से भूल गया था। –

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

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