首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaFX 8、VBox DragEvent -为什么我无法选择VBox子项

JavaFX 8、VBox DragEvent -为什么我无法选择VBox子项
EN

Stack Overflow用户
提问于 2015-11-26 20:35:30
回答 1查看 238关注 0票数 0

嘿,我现在正在写我的硕士论文,我有一个问题,我找不到解决方案。我希望有人知道我做错了什么。

我创建了这个UI:

在这里,我试图使“属性”中的元素可拖动,并将它们放在较低的TextFlow节点中。拖放本身似乎已经起作用了。我用一个Test-Label尝试了一下。

但由于某些原因,我无法通过“属性”VBox中的子项来重现它。

这是我尝试的方法:

代码语言:javascript
复制
 private void fillScrollPane(Content content, ScrollPane scrollPane) {
    Map<String, Object> map = content.getProperties();
    scrollPane.setPickOnBounds(false);
    VBox root = new VBox();
    scrollPane.setContent(root);

    for (String s : map.keySet()) {
        Object value = map.get(s);
        if (value == null || value.toString().equals("[]") || value.toString().equals(""))
            continue;
        Label t = new Label(s + " : " + value.toString() + "\n");
        t.setOnDragDetected((MouseEvent event) -> {
            Dragboard db = t.startDragAndDrop(TransferMode.MOVE);
            ClipboardContent clipboardContent = new ClipboardContent();
            // Store node ID in order to know what is dragged.
            clipboardContent.putString(t.getId());
            db.setContent(clipboardContent);
            event.consume();
        });

        root.getChildren().add(t);
    }

}

但是,它似乎只是在鼠标点击时选择整个VBox,而不是在VBox中拖动子对象。

所以简而言之: Order is like this Scene -> ScrollPane -> VBox -> Label,我想通过拖动事件来选择标签。直接在现场,它可以工作,但不能使用VBox。

有谁知道我需要改变什么吗?

EN

回答 1

Stack Overflow用户

发布于 2015-11-26 20:44:26

好吧,我发现了,JavaFX不会给出自动生成的ID。如果没有它们,拖放似乎是行不通的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33938900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档