我正在开发javafx的应用程序,其中我必须实现一种逻辑,其中用户首先必须从TreeView(string1)中选择一个treeitem,然后必须从文本字段中拖动text(string2)并拖放到选定的treeitem 。如果选定的treeitem和文本字段(string1,string2)中的文本在哈希图中匹配,则文本(string2)成为selectec treeitem(string1)的子项。
我已经通过以下代码完成了所有这些逻辑:
在TextField上拖动
txtAddItem.setOnDragDetected(event->{
Dragboard db = txtAddItem.startDragAndDrop(TransferMode.COPY_OR_MOVE);
clipboard.putString(txtAddItem.getSelectedText());
db.setContent(clipboard);
event.consume();
});
拖放到TreeView上
treeView.setOnDragExited(event->
{
TreeItem<String> selectedItem = treeView.getSelectionModel().getSelectedItem();
String st = event.getDragboard().getString();
if(Relationships.checktRelationships(selectedItem.getValue().trim(), st)==true)
selectedItem.getChildren().add(new TreeItem(st));
});
Hashmap和CheckRelationship方法
static {
hashmap.put("person","p");
hashmap.put("person","pr");
hashmap.put("patient","p");
hashmap.put("doctor","d");
}
public static boolean checkRelationship(String key, String value) {
return hashmap.containsKey(key.trim()) && hashmap.get(key).equals(value.trim());
}
如何解决程序中的所有这些问题。