Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package be.wout.listeners;
- import java.awt.Color;
- import java.awt.Point;
- import java.awt.event.MouseEvent;
- import java.awt.event.MouseListener;
- import java.awt.event.MouseMotionListener;
- import java.util.List;
- import be.wout.draw.DrawPanel;
- import be.wout.draw.shapes.Circle;
- import be.wout.draw.shapes.Line;
- import be.wout.draw.shapes.Pencil;
- import be.wout.draw.shapes.Rubber;
- import be.wout.draw.shapes.Shape;
- import be.wout.draw.shapes.Rectangle;
- import be.wout.staticThings.StaticVars;
- public class DrawPanelListener implements MouseListener, MouseMotionListener
- {
- private DrawPanel panel;
- private Shape drawShape;
- public DrawPanelListener(DrawPanel dp)
- {
- panel = dp;
- }
- public void mouseClicked(MouseEvent e)
- {
- }
- public void mouseEntered(MouseEvent e)
- {
- }
- public void mouseExited(MouseEvent e)
- {
- }
- public void mousePressed(MouseEvent e)
- {
- drawShape = getTmpShape(e.getX(), e.getY(), 2, 2);
- panel.setTmpShape(drawShape);
- }
- public void mouseReleased(MouseEvent e)
- {
- drawShape.setX2(e.getX());
- drawShape.setY2(e.getY());
- List<Shape> shapes = panel.getShapes();
- shapes.add(drawShape);
- panel.setTmpShape(null);
- panel.setShapes(shapes);
- drawShape = null;
- // panel.repaint();
- }
- public void mouseDragged(MouseEvent e)
- {
- if (drawShape instanceof Pencil)
- {
- ((Pencil) drawShape).addPoint(new Point(e.getX(), e.getY()));
- }
- else if (drawShape instanceof Rubber)
- {
- ((Rubber) drawShape).addPoint(new Point(e.getX(), e.getY()));
- }
- else
- {
- drawShape.setX2(e.getX());
- drawShape.setY2(e.getY());
- }
- panel.setTmpShape(drawShape);
- panel.repaint();
- }
- public void mouseMoved(MouseEvent e)
- {
- }
- private Shape getTmpShape(int x, int y, int x2, int y2)
- {
- switch (StaticVars.shapeType)
- {
- case "Rectangle":
- return new Rectangle(x, y, x2, y2, StaticVars.shapeColor);
- case "Circle":
- return new Circle(x, y, x2, y2, StaticVars.shapeColor);
- case "Pencil":
- return new Pencil(x, y, x2, y2, StaticVars.shapeColor);
- case "Line":
- return new Line(x, y, x2, y2, StaticVars.shapeColor);
- case "Rubber":
- return new Rubber(x,y,x2, y2, Color.WHITE);
- default:
- return new Rectangle(x, y, x2, y2, StaticVars.shapeColor);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement