Mouse Click and Drawing

 

import java.awt.event.MouseListener;

import java.awt.event.MouseEvent;

import javax.swing.JFrame;

import java.awt.*;

 

public class RectangleViewer {

      public static void main(String[] args){

            final RectangleComponent component = new RectangleComponent();

                       

//          Add Mouse Press Listener

            class MousePressListener implements MouseListener {

                 

                  public void mousePressed(MouseEvent event){

                       

                        int x = event.getX();

                        int y = event.getY();

                        // how draw an oval or a line

                        // vsg here you have a component

                        Graphics g = component.getGraphics();

                       

                        component.drawline(g,x,y);

                       

                        System.out.println("in mousePressed");

                  }

                 

                  public void  mouseReleased(MouseEvent event){}

                  public void  mouseClicked(MouseEvent event){}

                  public void  mouseEntered(MouseEvent event){}

                  public void  mouseExited(MouseEvent event){}

                 

            }

     

     

            MouseListener listener = new MousePressListener();

            component.addMouseListener(listener);

            JFrame frame = new JFrame();

            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        frame.setVisible(true);

            frame.add(component);

      }

     

 

}

 

/* new class */

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.Rectangle;

import java.awt.Color;

import javax.swing.JApplet;

import javax.swing.JComponent;

 

 

// Remember to run this program as an Applet

 

public class RectangleComponent extends JComponent{

     

      private double myX;      // the x coordinate of the rectangle

      private double myY;      // the y coordinate of the rectangle

      private double myWidth;  // the width of the rectangle

      private double myHeight; // the height of the rectangle

      public Graphics g;

 

// This creates a no-argument constructor

      public RectangleComponent(){

        System.out.println("got to RecComponent constructor");

             myX = 100;

             myY = 100;

             myWidth = 100;

             myHeight = 100;

             // this is the magic where paintComponent should be called

             // automatically

      }

 

      // a stub that needs to be filled in by you

      public double getPerimeter(){

             double temp= 0.0;

             return temp;

      }

 

      //    Calculates and returns the are of the rectangle.

 

      // a stub that needs to be filled in by you

 

      public double getArea(){

             double temp= 0.0;

             return temp;

      }

      public void drawline(Graphics g, int x, int y){

        g.drawLine(x, y, 200, 200);

        

      }

      // to call paint it needs to be overwritten

      // a small beginning.

      public void paintComponent(Graphics g){

        System.out.println("got to paintComponent");

             // draw a big rectangle using the Graphics class

           super.paintComponent(g);

             g.setColor(Color.red);

             g.drawRect(100, 100, 300, 300); 

            // g.drawLine(x, , 99, 99);

      }

}