Javafx:用鼠标在ImageView上绘图

标签 java canvas imageview javafx draw

用鼠标在 ImageView 上绘图的任何方法..我不知道,例如使用 Canvas ? 谢谢

最佳答案

我发现这是解决我的问题的一个很好的方法..不是吗?

    AnchorPane anchorRoot;
    double initX;
    double initY;
    ImageView iv = new ImageView(image);
    final double maxX = iv.getImage().getWidth();
    final double maxY = iv.getImage().getHeight();

    anchorRoot.getChildren().add(iv);

    iv.setOnMousePressed(new EventHandler<MouseEvent>() {
        @Override
        public void handle(MouseEvent me) {
            //System.out.println("Clicked, x:" + me.getSceneX() + " y:" + me.getSceneY());
            //the event will be passed only to the circle which is on front
            initX = me.getSceneX();
            initY = me.getSceneY();
            me.consume();
        }
    });
    iv.setOnMouseDragged(new EventHandler<MouseEvent>() {
        @Override
        public void handle(MouseEvent me) {
            //System.out.println("Dragged, x:" + me.getSceneX() + " y:" + me.getSceneY());
            if (me.getSceneX() < maxX && me.getSceneY() < maxY) {
                Line line = new Line(initX, initY, me.getSceneX(), me.getSceneY());
                line.setFill(null);
                line.setStroke(Color.RED);
                line.setStrokeWidth(2);
                anchorRoot.getChildren().add(line);
            }

            initX = me.getSceneX() > maxX ? maxX : me.getSceneX();
            initY = me.getSceneY() > maxY ? maxY : me.getSceneY();
        }
    });

关于Javafx:用鼠标在ImageView上绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14755968/

相关文章:

java - 从Spark Workers将数据从SparkStreaming保存到Cassandra是否可行

java - 如何获取DefaultUrl注解?

javascript - Canvas 将箭头键控件添加到 ipad 和其他设备的屏幕上

android - 如何删除显示在 scrollView 顶部的空白

android - 如何保持 Android 布局中的图像与原始图像成比例?

java - 基于HTTP方法自定义Spring MVC requestBody映射?

java - 如何在 SWT 的 SashForm 上显示句柄?

javascript - Canvas 描边文字锐利神器

javascript - jQuery - 使用 Canvas 在 div 之间画线

android - android XML 中图像缺少 contentDescription 属性