有什么方法可以基于匹配的哈希图对将项目从TextField拖放到Treeview?

时间:2019-06-02 19:45:09

标签: javafx hashmap treeview

我正在开发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());
            }
  1. 它工作正常,但是现在如果我必须添加text(string2),该文本可以在文本后包含任何数字,例如用户输入“ p1”或“ p2”,并且在哈希图中只有(“ person”,“ p”),它必须将p1添加为子节点。
  2. 是否有任何方法可以从文本字段复制文本并将其粘贴到树视图项上(取决于匹配条件),这意味着可以使用复制粘贴选项进行拖放吗?

如何解决程序中的所有这些问题。

0 个答案:

没有答案