2011-11-04 11 views
6

से संबंधित माउस निर्देशांक मैं बहुभुज आकर्षित करने की कोशिश कर रहा हूं और माउस फ्रेम को पाने के लिए अपने फ़्रेम पर क्लिक करने में सक्षम होना चाहता हूं ताकि एक मानसिक छवि को x/y मानों में और तेज़ी से बदल सकें।फ्रेम

मैं

System.out.println("("+ MouseInfo.getPointerInfo().getLocation().x +", 
    "+ MouseInfo.getPointerInfo().getLocation().y +")"); 

उपयोग कर रहा हूँ, लेकिन यह मुझे मेरी वास्तविक स्क्रीन के सापेक्ष निर्देशांक देते हैं, और न मेरी जावा खिड़की।

मैं जावा विंडो के सापेक्ष निर्देशांक कैसे दिखा सकता हूं?

उत्तर

4

मुझे लगता है कि आप अपने फ्रेम में एक माउसलिस्टर जोड़ते हैं? तो फिर तुम सिर्फ SwingUtilties वर्ग

विधि convertPointFromScreen एक स्क्रीन समन्वय लेते हैं और इसे परिवर्तित करने के लिए रिश्तेदार होने के लिए होगा का उपयोग कर निर्देशांक MouseEvent.getPoint

साथ रिश्तेदार निर्देशांक प्राप्त कर सकते हैं
frame.addMouseListener(new MouseAdapter() { 
    void mouseClicked(MouseEvent e) { 
     System.out.println(e.getPoint()); 
    } 
}); 
+0

यह काम करता है, लेकिन यह मुझे सही निर्देशांक नहीं दे रहा है। इसका परीक्षण करने के लिए मैंने x = 50 और 7 = 50 (g.drawRect (50,50,100,100)) पर एक वर्ग खींचा; और जब मैंने वर्ग के ऊपरी बाएं कोने पर क्लिक किया, तो यह मुझे x = 58 और y = 78 (java.awt.Point [x = 58; y = 78]) – Nyst

+0

बचाता है क्योंकि ऐसा इसलिए है क्योंकि आप JFrame के सापेक्ष माउस निर्देशांक प्राप्त करते हैं लेकिन आप सीधे फ्रेम पर पेंट नहीं करते हैं। आप शायद जेपीआरएएल पर पेंट करते हैं जिसे आपने जेएफआरएएम में जोड़ा था। इसका मतलब है कि आपको सही निर्देशांक प्राप्त करने के लिए उस जेपीनल को माउसलिस्टर जोड़ना होगा। – SpiderPig

+0

मेरा बुरा, मुझे फ्रेम और पैनल उलझन में मिला, यह अब तय है – Nyst

13

आप स्क्रीन और घटक के बीच परिवर्तित कर सकते हैं आपके द्वारा प्रदान किया गया घटक।

+0

बहुत अच्छा सुझाव +1 – mKorbel

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