嘿,我目前正在做我的修身工作并且对女巫有一个问题我无法找到解决方案。 我希望有人知道我做错了什么。
我创建了这个UI:
我试图在"属性"中创建元素。可拖放并将它们放在较低的TextFlow节点中。 拖放本身似乎已经起作用了。我用一个测试标签试了一下。
但由于某种原因,我无法在“物业”中与孩子们重现这一点。垂直框。
这是我尝试的方式:
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。
简而言之: 订单是这样的 场景 - &gt; ScrollPane - &gt; VBox - &gt;标签 我想用拖动事件选择标签。直接在场景上它确实有效,但不是VBox。
有没有人知道我需要改变什么?
答案 0 :(得分:0)
好的我发现了,JavaFX没有提供自动生成的ID。没有他们拖放似乎不起作用。