This is a good way to keep your MouseListener methods clean. Its also a good start to something new depending on how you use it. Hope you guys find it useful.
How To Use:
Code:
public void yourloop() {
while (yourcondition) {
if (Mouse.isClicked()) {
// put your code here.
Mouse.reset();
}
}
}
or
Code:
if (Mouse.isMouseClicked(MouseActions.DRAG)) {
// put your code here.
Mouse.reset();
}
Declare this somewhere:
Code:
private final Mouse mouse = new Mouse();
Than add this to your GUI code:
Code:
addMouseListener(mouse);
addMouseMotionListener(mouse);
Create a class called "Mouse.java":
Code:
package com.graham.engine;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
/**
*
* @author GrahamJr
*
*/
public class Mouse implements MouseListener, MouseMotionListener {
// private final Game game;
public static int MOUSE_ACTION = -1;
public static int ABS_X = -1;
public static int ABS_Y = -1;
/**
* public Mouse(final Game _game) { game = _game; }
**/
public static enum MouseActions {
CLICK(1), DRAG(2), RIGHT_CLICK(3);
private final int actionIndex;
private MouseActions(final int _actionIndex) {
actionIndex = _actionIndex;
}
public int getActionIndex() {
return actionIndex;
}
}
public static boolean isMouseClicked(final MouseActions CLICK_TYPE) {
return CLICK_TYPE.getActionIndex() == MOUSE_ACTION;
}
public static boolean isClicked() {
return MOUSE_ACTION > 0;
}
@Override
public void mouseDragged(final MouseEvent arg0) {
ABS_X = arg0.getX();
ABS_Y = arg0.getY();
MOUSE_ACTION = MouseActions.DRAG.getActionIndex();
}
@Override
public void mouseMoved(final MouseEvent arg0) {
ABS_X = arg0.getX();
ABS_Y = arg0.getY();
}
@Override
public void mouseClicked(final MouseEvent arg0) {
ABS_X = arg0.getX();
ABS_Y = arg0.getY();
MOUSE_ACTION = MouseActions.CLICK.getActionIndex();
}
@Override
public void mouseEntered(MouseEvent arg0) {
}
@Override
public void mouseExited(MouseEvent arg0) {
}
@Override
public void mousePressed(MouseEvent arg0) {
}
@Override
public void mouseReleased(MouseEvent arg0) {
}
public static void reset() {
MOUSE_ACTION = -1;
}
}
Hoped this helped you please leave any comments if you have any suggestions etc...