java 2D and swing
        Posted  
        
            by 
                user384706
            
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by user384706
        
        
        
        Published on 2011-01-02T10:36:50Z
        Indexed on 
            2011/01/02
            10:54 UTC
        
        
        Read the original article
        Hit count: 446
        
Hi,
I have trouble understanding a fundamental concept in Java 2D.
To give a specific example:
One can customize a swing component via implementing it's own version of the method paintComponent(Graphics g)
Graphics is available to the body of the method.
Question:
What is exactly this Graphics object, I mean how it is related to the object that has the method paintComponent? Ok, I understand that you can do something like:
g.setColor(Color.GRAY);
g.fillOval(0, 0, getWidth(), getHeight());
To get a gray oval painted. What I can not understand is how is the Graphics object related to the component and the canvas. How is this drawing actually done?
Another example:  
public class MyComponent extends JComponent {
     protected void paintComponent(Graphics g) {
                System.out.println("Width:"+getWidth()+", Height:"+getHeight());
            }
    public static void main(String args[]) {
                JFrame f = new JFrame("Some frame");
                f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                f.setSize(200, 90);
                MyComponent  component = new MyComponent  ();
                f.add(component);
                f.setVisible(true);       
          }
 }
This prints
Width:184, Height:52
What does this size mean? I have not added anything to the frame of size(200,90).
Any help on this is highly welcome
Thanks
© Stack Overflow or respective owner