40 lines
1.2 KiB
Java
40 lines
1.2 KiB
Java
import java.awt.event.MouseAdapter;
|
|
import java.awt.event.MouseEvent;
|
|
|
|
/**
|
|
* Chessboard mouse adapter class
|
|
*/
|
|
public class ChessboardMouseAdapter extends MouseAdapter {
|
|
|
|
public void mousePressed(MouseEvent me) {
|
|
Chessboard c = (Chessboard) me.getSource();
|
|
PiecePosition pos = c.getPieceCoordinates(me.getX(), me.getY());
|
|
IPiece piece = c.grabPiece(pos);
|
|
if (piece != null) {
|
|
double totalScale = c.pieceScale * c.boardScale;
|
|
piece.setOverride(me.getX() - 50 * totalScale, me.getY() - 50 * totalScale);
|
|
c.repaint();
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void mouseDragged(MouseEvent me) {
|
|
Chessboard c = (Chessboard) me.getSource();
|
|
IPiece piece = c.getFloatingPiece();
|
|
if (piece != null) {
|
|
double totalScale = c.pieceScale * c.boardScale;
|
|
piece.setOverride(me.getX() - 50 * totalScale, me.getY() - 50 * totalScale);
|
|
c.getRootPane().repaint();
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void mouseReleased(MouseEvent me) {
|
|
Chessboard c = (Chessboard) me.getSource();
|
|
PiecePosition pos = c.getPieceCoordinates(me.getX(), me.getY());
|
|
c.returnPiece(pos);
|
|
c.getRootPane().repaint();
|
|
}
|
|
|
|
}
|