我正在尝试在 JavaFX 中制作一个测量工具以在 ImageView 上使用,在这里我单击图像中的两个点,然后获取它们之间的距离 - 我已经弄清楚了这部分。但是,我也希望能够查看/标记我点击的图像上的位置,但我无法想象如何最好地做到这一点。我将附上测量工具的代码,以便您更好地了解我正在处理的内容。我认为它必须在第一个 if 循环内,我可以在 (secondposx, secondposy) 处设置标记 - 但我的问题是,我怎样才能做出那个标记?你有什么好主意吗?:-)
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;
}