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);
}
}