J'essaye de faire un outil de mesure dans JavaFX à utiliser sur un ImageView, où je clique sur deux points dans l'image et ensuite obtiens la distance entre eux - j'ai compris partie dehors. Cependant, je veux aussi pouvoir voir/marquer où sur l'image j'ai cliqué, mais je ne peux pas imaginer comment serait le meilleur pour le faire. Je vais attacher le code pour l'outil de mesure, afin que vous ayez une meilleure idée de ce que j'ai à faire. Je pense qu'il doit être dans la première boucle if, où je peux définir la marque à (secondposx, secondposy) - mais ma question est, comment puis-je faire cette marque? Avez-vous de bonnes idées? :-)JavaFX, marquez les coordonnées sur une image avec le clic de la souris
private void btnMeasureAction(ActionEvent event) {
if (btnMeasure.isSelected()) {
imgView.setCursor(Cursor.CROSSHAIR);
imgView.setPickOnBounds(true);
imgView.setOnMouseClicked(e -> {
secondposx = e.getX();
secondposy = e.getY();
// I think the MARK should be set here.
//System.out.println(secondposx + ", " + secondposy);
if ((firstposx == 0)) {
firstposx = secondposx;
firstposy = secondposy;
//System.out.println(firstposx + ", " + firstposy);
} else {
double distance = Math.sqrt(Math.pow((secondposx - firstposx), 2) + Math.pow((secondposy - firstposy), 2));
System.out.println("The distance is: " + distance);
btnMeasure.setSelected(false);
imgView.setOnMouseClicked(null);
imgView.setCursor(Cursor.DEFAULT);
firstposx = 0;
firstposy = 0;
secondposy = 0;
secondposx = 0;
}
est votre ImageView dans un AnchorPane? – MeGoodGuy
@MeGoodGuy AnchorPane-> BorderPane-> ScrollPane -> ImageView – Heidi