ImageFrameで使用する測定ツールをJavaFXで作成しようとしていますが、ここで画像の2点をクリックして距離を取得します。パートアウト。しかし、私はまた、私がクリックした画像上のどこを見る/マークすることができるようにしたいが、そうするのが最善であるとは想像もできない。測定ツールのコードを添付して、私が扱っていることをよりよく理解できるようにします。私はそれが最初のifループの内側になければならないと思います。(secondposx、secondposy)でマークを設定できますが、私の質問はどのようにマークできますか?いいアイデアはありますか? uはそれを削除したい場合は、JavaFX、画像の座標をマウスでクリックすると
Circle c = new Circle(secondposx, secondposy, 5, Color.RED);
anchorPane.getChildren().add(c);
::-)
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;
}
アンカーパネル内のImageViewはありますか? – MeGoodGuy
@MeGoodGuy AnchorPane-> BorderPane-> ScrollPane - > ImageView – Heidi