【问题标题】:HOW TO SELECT MULTIPLE SHAPES (DRAG AND DROP) IN JAVA FX?如何在 JAVA FX 中选择多种形状(拖放)?
【发布时间】:2016-07-20 03:30:06
【问题描述】:

enter image description here

我无法选择多个对象,例如 rectangle 和 textfield 。我需要选择,拖放多个形状,如word文档............请任何人回答......

public SelectionModel selectionModel;
public MouseHandler(SelectionModel selectionModel2, SelectionModel selectionModel     ) {
    // TODO Auto-generated constructor stub
    this.selectionModel = selectionModel;
}

private class DragContext {
    double x;
    double y;
}

public void makeDraggable( final Node node) {
    final DragContext dragDelta = new DragContext();

    node.setOnMousePressed(mouseEvent -> {

        // TODO: add shift & ctrl check to add/remove nodes to selection
        selectionModel.clear();

        Group root=new Group();
        selectionModel.add(node);

        dragDelta.x = node.getTranslateX() - mouseEvent.getSceneX();
        dragDelta.y = node.getTranslateY() - mouseEvent.getSceneY();     

        mouseEvent.consume();            
    });

    node.setOnMouseDragged(mouseEvent -> {       
        node.setTranslateX(mouseEvent.getSceneX() + dragDelta.x);
        node.setTranslateY(mouseEvent.getSceneY() + dragDelta.y);
    });

    node.setOnMouseReleased(mouseEvent -> {
        fixPosition(node);
    });
}

private void fixPosition( Node node) {

    double x = node.getTranslateX();
    double y = node.getTranslateY();

    node.relocate(node.getLayoutX() + x, node.getLayoutY() + y);

    node.setTranslateX(0);
    node.setTranslateY(0);
}
}

请用代码解释你的答案

【问题讨论】:

    标签: javafx-8


    【解决方案1】:

    在我看不到的移动节点方法中,您必须遍历选定的节点并同时将翻译应用于所有节点。

    如果这没有帮助,请更具体:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-07
      • 2020-12-07
      • 2011-01-01
      相关资源
      最近更新 更多