From 8e7020171edf30cbcfbdec4bde069ad630840eca Mon Sep 17 00:00:00 2001 From: Victor Date: Sat, 15 Mar 2014 17:40:56 +0200 Subject: [PATCH] Add mouse listeners --- .../annimon/turrets/DoubleBufferedCanvas.java | 45 ++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/src/com/annimon/turrets/DoubleBufferedCanvas.java b/src/com/annimon/turrets/DoubleBufferedCanvas.java index 319994f..3c38445 100644 --- a/src/com/annimon/turrets/DoubleBufferedCanvas.java +++ b/src/com/annimon/turrets/DoubleBufferedCanvas.java @@ -3,13 +3,16 @@ package com.annimon.turrets; import java.awt.Canvas; import java.awt.Graphics; import java.awt.Graphics2D; +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; +import java.awt.event.MouseMotionListener; import java.awt.image.BufferedImage; /** * * @author aNNiMON */ -public abstract class DoubleBufferedCanvas extends Canvas { +public abstract class DoubleBufferedCanvas extends Canvas implements MouseListener, MouseMotionListener { private final Graphics2D G; private final BufferedImage buffer; @@ -19,6 +22,9 @@ public abstract class DoubleBufferedCanvas extends Canvas { setSize(Constants.WIDTH, Constants.HEIGHT); setPreferredSize(Constants.SCREEN_DIMENSION); + addMouseListener(DoubleBufferedCanvas.this); + addMouseMotionListener(DoubleBufferedCanvas.this); + buffer = new BufferedImage(Constants.WIDTH, Constants.HEIGHT, BufferedImage.TYPE_INT_RGB); G = buffer.createGraphics(); thread = new DrawingThread(); @@ -48,6 +54,43 @@ public abstract class DoubleBufferedCanvas extends Canvas { protected abstract void update(); + protected abstract void mousePressed(int x, int y); + + protected abstract void mouseReleased(int x, int y); + + protected abstract void mouseDragged(int x, int y); + + @Override + public void mouseClicked(MouseEvent e) { + } + + @Override + public void mousePressed(MouseEvent e) { + mousePressed(e.getX(), e.getY()); + } + + @Override + public void mouseReleased(MouseEvent e) { + mouseReleased(e.getX(), e.getY()); + } + + @Override + public void mouseEntered(MouseEvent e) { + } + + @Override + public void mouseExited(MouseEvent e) { + } + + @Override + public void mouseDragged(MouseEvent e) { + mouseDragged(e.getX(), e.getY()); + } + + @Override + public void mouseMoved(MouseEvent e) { + } + private final class DrawingThread extends Thread { private boolean keepRunning = true;