1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| class Selection extends MouseAdapter implements MouseMotionListener {
// Premier point selectionné
int selx1;
int sely1;
// Deuxième point selectionné
int selx2;
int sely2;
// ةcoute des événements de souris
public void mousePressed(MouseEvent event) {
selx1 = selx2 = event.getX();
sely1 = sely2 = event.getY();
zoomButton.setEnabled(false);
repaint();
}
public void mouseDragged(MouseEvent event) {
selx2 = event.getX();
sely2 = event.getY();
zoomButton.setEnabled(selx1 != selx2 && sely1 != sely2);
repaint();
}
public void mouseMoved(MouseEvent event) {
}
// Retourne le rectangle qui délimite la zône selectionnée
// Ce rectangle utilise les coordonnées du JPanel en pixels.
Rectangle getRectangle() {
// Calcul du rectangle
int x = Math.min(selx1, selx2);
int y = Math.min(sely1, sely2);
int width = Math.abs(selx1 - selx2);
int height = Math.abs(sely1 - sely2);
return new Rectangle(x, y, width, height);
}
}
}
static class Zone {
private double x; // Absicsse du coin supérieur gauche
private double y; // Ordonnée du coin supérieur gauche
private double width; // Largeur
private double height; // Hauteur
Zone(double x, double y, double width, double height) {
this.x = x;
this.y = y;
this.width = width;
this.height = height;
}
double getX() { return x; }
double getY() { return y; }
double getWidth() { return width; }
double getHeight() { return height; }
}
} |
Partager