+ public void pressed() {
+ dragFrom = oldcell;
+ }
+ public void released() {
+ if (dragFrom == null || oldcell == null) return;
+ if (Math.abs(dragFrom._y - oldcell._y) > 1) return;
+ if (Math.abs(dragFrom._x - oldcell._x) > 1) return;
+ if (dragFrom._x == oldcell._x && dragFrom._y == oldcell._y+1) oldcell.cell.yi(NORTH);
+ if (dragFrom._x == oldcell._x && dragFrom._y == oldcell._y-1) oldcell.cell.yi(SOUTH);
+ if (dragFrom._x == oldcell._x+1 && dragFrom._y == oldcell._y) oldcell.cell.yi(EAST);
+ if (dragFrom._x == oldcell._x-1 && dragFrom._y == oldcell._y) oldcell.cell.yi(WEST);
+ if (dragFrom._x == oldcell._x+1 && dragFrom._y == oldcell._y+1) oldcell.cell.xi(NE);
+ if (dragFrom._x == oldcell._x+1 && dragFrom._y == oldcell._y-1) oldcell.cell.xi(SE);
+ if (dragFrom._x == oldcell._x-1 && dragFrom._y == oldcell._y+1) oldcell.cell.xi(NW);
+ if (dragFrom._x == oldcell._x-1 && dragFrom._y == oldcell._y-1) oldcell.cell.xi(SW);
+ repaint();
+ }
+ public void drawKeyboard(Image keyboardImage, Graphics2D g) {
+ int width = 300;
+ int height = (keyboardImage.getHeight(null) * width) / keyboardImage.getWidth(null);
+ g.drawImage(keyboardImage,
+ 0, getHeight() - height,
+ width, getHeight(),
+ 0, 0,
+ keyboardImage.getWidth(null), keyboardImage.getHeight(null),
+ null);
+ }
+