2012-05-30 12 views
5

// में समन्वय विमान का उपयोग // मैं जावा में वस्तुओं को आकर्षित करने के तरीके सीखने की कोशिश कर रहा हूं। मैं इसमें बेहतर हो रहा हूं, लेकिन एक बार जब मुझे स्क्रीन पर एक छवि मिलती है तो मुझे इसे छेड़छाड़ करने में परेशानी हो रही है। जिन संख्याओं में मैंने रखा है, वे यह समझ में नहीं आते कि आकार कैसे बदल रहे हैं। कम से कम मेरे लिए वे नहीं करते हैं। बीजगणित में यदि आप एक्स अक्ष पर कोई संख्या बढ़ाते हैं तो यह दाईं ओर जाता है और यदि आप वाई अक्ष पर कोई संख्या बढ़ाते हैं तो यह ऊपर जाता है। यह नहीं है कि यहाँ क्या हो रहा है। क्या कोई मुझे बता सकता है कि यह कैसे काम करता है? मैं अभी भी जावा के लिए नया हूं, इसलिए अधिक स्पष्टीकरण और विस्तार बेहतर है। मैं जावा सीखने के लिए अपनी गर्मी के दौरान एक दिन में कुछ घंटे लेने की कोशिश कर रहा हूं और कभी-कभी यह थोड़ा निराशाजनक हो जाता है। कोई भी मदद बहुत ही सराहनीय होगी।जेएफआरएएम

+3

जावा में, (0,0) ऊपरी बाएं कोने में है। – Jeffrey

+3

यह [लिंक] (http://docs.oracle.com/javase/1.4.2/docs/guide/2d/spec/j2d-intro.html#wp61857) मदद कर सकता है। – bacchus

+3

यह [उदाहरण] (http://stackoverflow.com/a/9373195/230513) कार्टेशियन और स्क्रीन निर्देशांक के बीच परिवर्तन करने पर चर्चा करता है। – trashgod

उत्तर

6
यहाँ

स्क्रीन के TOP LEFT SIDE, के रूप में के रूप में आप X के मूल्य में वृद्धि, आप हालांकि के रूप में आप Y के मूल्य में वृद्धि, आप DOWNWARDS चले जाएँगे, RIGHT SIDE की ओर चले जाएँगे से Co-ordinates शुरू। यह थोड़ा सा उदाहरण है कि आप इसे थोड़ा बेहतर समझने के लिए प्रोग्राम करें, बस इसे कहीं भी क्लिक करें।

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 

public class DrawingExample 
{ 
    private int x; 
    private int y; 
    private String text; 
    private DrawingBase canvas; 

    private void displayGUI() 
    { 
     JFrame frame = new JFrame("Drawing Example"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     canvas = new DrawingBase(); 
     canvas.addMouseListener(new MouseAdapter() 
     { 
      public void mouseClicked(MouseEvent me) 
      { 
       text = "X : " + me.getX() + " Y : " + me.getY(); 
       x = me.getX(); 
       y = me.getY(); 
       canvas.setValues(text, x, y); 
      } 
     }); 

     frame.setContentPane(canvas); 
     frame.pack(); 
     frame.setLocationByPlatform(true); 
     frame.setVisible(true); 
    } 

    public static void main(String... args) 
    { 
     SwingUtilities.invokeLater(new Runnable() 
     { 
      public void run() 
      { 
       new DrawingExample().displayGUI(); 
      } 
     }); 
    } 
} 

class DrawingBase extends JPanel 
{ 
    private String clickedAt = ""; 
    private int x = 0; 
    private int y = 0; 

    public void setValues(String text, int x, int y) 
    { 
     clickedAt = text; 
     this.x = x; 
     this.y = y; 
     repaint(); 
    } 

    public Dimension getPreferredSize() 
    { 
     return (new Dimension(500, 400)); 
    } 

    public void paintComponent(Graphics g) 
    { 
     super.paintComponent(g); 
     g.drawString(clickedAt, x, y); 
    } 
} 
+0

ओह ठंडा। यह भी खूब रही। –

+0

@ मार्टिन मारिनो: धन्यवाद और धन्यवाद स्माइलिंग :-) –

+0

कोड कह रहा है कि यह प्रतीक वर्ग ड्रॉइंगबेस नहीं ढूंढ सकता है। त्रुटियां निजी "ड्रॉइंगबेस" कैनवास हैं; कैनवास = नया "ड्रॉइंगबेस"(); उद्धरण यह दिखाने के लिए हैं कि वास्तविक त्रुटि कहां से आ रही है। मैं मदद की सराहना करता हूं, लेकिन मुझे नहीं पता कि इसे कैसे ठीक किया जाए। क्या मुझे थोड़ा और मदद मिल सकती है? –

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