Search code examples
javagraphic

Plotting random points in Java using 2D Graphics


I am beginner to java Graphics , I have been trying to plot random dots on JFrame but don't know why when I compile there is nothing on Frame , for me logic is fine + no error. Can someone help me whats wrong here

public class parent extends JPanel {    

    public void PaintComponent (Graphics g)     
    {
        super.paintComponent(g);
        Graphics2D g2d  = (Graphics2D) g;
        g2d.setColor(Color.blue);
        Dimension size = getSize();
        Insets  insets= getInsets();
        int w =  size.width - insets.left - insets.right;
        int h =  size.height - insets.top - insets.bottom;
        Random r = new Random();

        for (int i=0; i<1000; i++) {
           int x = Math.abs(r.nextInt()) % w;
           int y = Math.abs(r.nextInt()) % h;
           g2d.drawLine(x, y, x, y);
        }
    }


    public static void main(String[] args) 
    {
        JFrame frame = new JFrame("Points");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(new parent());
        frame.setSize(250, 200);
        frame.setVisible(true);
     }
} 

Solution

  • Well is it PaintComponent or should it be paintComponent? I think I know which one the Java developers would choose.

    Note that this is a perfect bug that @Override in annotation would catch in Eclipse.