日期:2014-05-18  浏览次数:20624 次

网页编程中鼠标拖拽问题
有一个树型结构,请教   如何实现把一个叶子结点通过鼠标拖动的方法移动到另一个 "枝 "上去?
       
        树型结构用tree组件实现.
        再请教一下,tree组件中添加结点的方法为add,有没有相应的删除结点的方法?

        在线等!


------解决方案--------------------
删除和添加尽量用TreeModal做。在DefaultTreeModel类里有这两个方法,可用于删除和添加节点
void removeNodeFromParent(MutableTreeNode node)
void insertNodeInto(MutableTreeNode newChild, MutableTreeNode parent, int index)

拖放需要在树上添加MouseMotionListener(里面有onMouseDrag事件),和MouseListener(有onMouseReleased事件)。Drag时记住原节点,release时删除原节点,然后插入到目标节点即可

JTree的以下方法可以获取鼠标位置的节点路径
TreePath getPathForLocation(int x, int y)
------解决方案--------------------
如果是awt/swing 2楼的方法就可以了。
也可以用DragGestureListener和DropTargetListener来监听拖放的事件