JavaFX拖放,带有鼠标图标旁边的自定义节点

用户

在拖放过程中,在鼠标图标旁边显示节点的半透明“副本”的最佳方法是什么?

基本上,我有带有彩色背景和文本标签的HBox,并且我想给它们一个被拖动时“粘”在鼠标光标上的外观。

如果用户可以直观地验证他们要拖动的内容,而不仅仅是看到鼠标光标变为各种拖动图标,那就很好了。当您拖动某些组件(例如RadioButton)时,Scene Builder往往会这样做。

乔纳坦·斯滕巴卡(Jonatan Stenbacka)

“半透明的节点副本”是通过调用节点来完成的snapshot(null, null),该节点返回WritableImage然后,将其设置WritableImage为的拖动视图DragBoard这是一个有关如何执行此操作的小示例:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.input.ClipboardContent;
import javafx.scene.input.DataFormat;
import javafx.scene.input.Dragboard;
import javafx.scene.input.TransferMode;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class DragAndDrop extends Application {
    private static final DataFormat DRAGGABLE_HBOX_TYPE = new DataFormat("draggable-hbox");

    @Override
    public void start(Stage stage) {
        VBox content = new VBox(5);

        for (int i = 0; i < 10; i++) {
            Label label = new Label("Test drag");

            DraggableHBox box = new DraggableHBox();
            box.getChildren().add(label);

            content.getChildren().add(box);
        }

        stage.setScene(new Scene(content));
        stage.show();
    }

    class DraggableHBox extends HBox {
        public DraggableHBox() {
            this.setOnDragDetected(e -> {
                Dragboard db = this.startDragAndDrop(TransferMode.MOVE);

                // This is where the magic happens, you take a snapshot of the HBox.
                db.setDragView(this.snapshot(null, null));

                // The DragView wont be displayed unless we set the content of the dragboard as well. 
                // Here you probably want to do more meaningful stuff than adding an empty String to the content.
                ClipboardContent content = new ClipboardContent();
                content.put(DRAGGABLE_HBOX_TYPE, "");
                db.setContent(content);

                e.consume();
            });
        }
    }

    public static void main(String[] args) {
        launch();
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在链接旁边的鼠标悬停时更改自定义图标图像?

来自分类Dev

带有自定义节标题的iOS的UITable视图

来自分类Dev

jstree自定义节点标记

来自分类Dev

自定义节点图标在Fancytree中不起作用

来自分类Dev

JavaFX:使用自定义节点作为TreeView的折叠/展开分支开关

来自分类Dev

igraph / R中的自定义节点绘图功能

来自分类Dev

如何正确执行自定义节点模块的功能

来自分类Dev

注销木兰中的自定义节点类型

来自分类Dev

KNIME 自定义节点输出格式

来自分类Dev

ngx-graph 自定义节点模板

来自分类Dev

AngularJS-自定义图标图标

来自分类Dev

带有可点击选项的自定义鼠标光标

来自分类Dev

.desktop文件带有自定义图标

来自分类Dev

带有Ionic 5的自定义图标?

来自分类Dev

带有 ios 和 android 的自定义图标

来自分类Dev

添加自定义命令(带有自定义图标)

来自分类Dev

检索自定义节点属性以及在露天删除节点时出现问题

来自分类Dev

CoreData的自定义节数组

来自分类Dev

将自定义节点类型添加到Apache Sling WebApp

来自分类Dev

Google Kubernetes Engine是否支持自定义节点映像和/或10Gbps网络?

来自分类Dev

自定义节点程序包不提供名为

来自分类Dev

放入流后,我在node-red中的自定义节点不可用

来自分类Dev

如何使用brunch.io调试自定义节点服务器?

来自分类Dev

在JAVA中将自定义节点添加到Alloyui DiagramBuilder

来自分类Dev

尝试以递归方式将自定义节点添加到LinkedList的末尾

来自分类Dev

记住Node-RED自定义节点中的回调函数

来自分类Dev

如何在Kubernetes上迁移到自定义节点日志记录?

来自分类Dev

如何为Azure WebJobs选择自定义节点版本

来自分类Dev

OPC UA.NET 自定义节点管理器创建

Related 相关文章

  1. 1

    如何在链接旁边的鼠标悬停时更改自定义图标图像?

  2. 2

    带有自定义节标题的iOS的UITable视图

  3. 3

    jstree自定义节点标记

  4. 4

    自定义节点图标在Fancytree中不起作用

  5. 5

    JavaFX:使用自定义节点作为TreeView的折叠/展开分支开关

  6. 6

    igraph / R中的自定义节点绘图功能

  7. 7

    如何正确执行自定义节点模块的功能

  8. 8

    注销木兰中的自定义节点类型

  9. 9

    KNIME 自定义节点输出格式

  10. 10

    ngx-graph 自定义节点模板

  11. 11

    AngularJS-自定义图标图标

  12. 12

    带有可点击选项的自定义鼠标光标

  13. 13

    .desktop文件带有自定义图标

  14. 14

    带有Ionic 5的自定义图标?

  15. 15

    带有 ios 和 android 的自定义图标

  16. 16

    添加自定义命令(带有自定义图标)

  17. 17

    检索自定义节点属性以及在露天删除节点时出现问题

  18. 18

    CoreData的自定义节数组

  19. 19

    将自定义节点类型添加到Apache Sling WebApp

  20. 20

    Google Kubernetes Engine是否支持自定义节点映像和/或10Gbps网络?

  21. 21

    自定义节点程序包不提供名为

  22. 22

    放入流后,我在node-red中的自定义节点不可用

  23. 23

    如何使用brunch.io调试自定义节点服务器?

  24. 24

    在JAVA中将自定义节点添加到Alloyui DiagramBuilder

  25. 25

    尝试以递归方式将自定义节点添加到LinkedList的末尾

  26. 26

    记住Node-RED自定义节点中的回调函数

  27. 27

    如何在Kubernetes上迁移到自定义节点日志记录?

  28. 28

    如何为Azure WebJobs选择自定义节点版本

  29. 29

    OPC UA.NET 自定义节点管理器创建

热门标签

归档