麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

JTree之間的drag/drop

2019-11-18 14:06:36
字體:
來源:轉載
供稿:網友

  關于JTree 之間的drag/drop一直找不到合適的方法。現通過鼠標事件的相應實現了該過程。希望和大家一起學習。

源碼如下:
import javax.swing.*;
import javax.swing.event.*;
import java.awt.datatransfer.*;
import java.awt.dnd.*;
import javax.swing.tree.*;


public class DragDropTree implements MouseMotionListener,MouseListener, DragGestureListener,DragSourceListener
{


PRivate JTree tree1=null;
private JTree tree2=null;
Object lastNode;
Vector vet=new Vector();
TreeSelectionModel selectionModel=tree1.getSelectionModel();
Vector vetnew=new Vector();
private boolean drag=false;

public DragDropTree(JTree t1,JTree t2)
{
tree1=t1;
tree2=t2;
DragSource dragSource = DragSource.getDefaultDragSource();
dragSource.createDefaultDragGestureRecognizer(
tree1, // component where drag originates
DnDConstants.ACTION_COPY_OR_MOVE, // actions
this); // drag gesture recognizer
dragSource.createDefaultDragGestureRecognizer(
tree2, // component where drag originates
DnDConstants.ACTION_COPY_OR_MOVE, // actions
this); // drag gesture recognizer
tree1.addMouseMotionListener(this);
tree1.addMouseListener(this);
tree2.addMouseMotionListener(this);
tree2.addMouseListener(this);
}




public void mouseEntered(MouseEvent e)
{

JTree selecttree=(JTree)e.getSource();
TreePath path=selecttree.getPathForLocation(e.getX(), e.getY());
if(path!=null)
{
if(drag&vet!=null)
{
drag=false;
String str=path.getPathComponent(1).toString();

MutableTreeNode parent,node=(MutableTreeNode)path.getLastPathComponent();
if(node.isLeaf())
parent=(MutableTreeNode)node.getParent();
else
parent=node;
int index=parent.getIndex(node)+1;
System.out.println("now node is in "+index+"level");

DefaultTreeModel model=(DefaultTreeModel)tree2.getModel();

int j=0;
while(j<vet.size())
{
String ss=vet.elementAt(j).toString();
MutableTreeNode newnode=new DefaultMutableTreeNode(ss);
model.insertNodeInto(newnode,parent,index);
j++;
}
vet=null;
vet=new Vector();
}
else;

}
else;



}



public void mouseDragged(MouseEvent e){
drag=true;
if(selectionModel!=null)selectionModel.clearSelection();

}



public void mouseMoved(MouseEvent e){}

public void mouseClicked(MouseEvent e){}

public void mouseExited(MouseEvent e){}

public void mousePressed(MouseEvent e)
{

lastNode=null;
if(e.getClickCount()==1)
{
TreePath path=tree1.getPathForLocation(e.getX(), e.getY());

if(path!=null){
TreeNode node=(TreeNode)path.getLastPathComponent();
if(node.isLeaf())
{
lastNode=(MutableTreeNode)path.getLastPathComponent();
TreeSelectionModel selectionModel=tree1.getSelectionModel();
int a=selectionModel.getSelectionCount();
System.out.println("node is :"+a);
if(a>1)
{

if(vetnew!=null){
System.out.println(vetnew.size()+"have so mUCh path");
for(int n=0;n<vetnew.size();n++)
{
TreePath p=(TreePath)vetnew.get(n);
System.out.println(p);
if(p==path)path=null;
}
}
if(path!=null)

{
vet.addElement(lastNode);
vetnew.addElement(path);
}
}
else
{
if(vet!=null)
{
vet.removeAllElements();
vet.addElement(lastNode);
}
if(vetnew!=null)
{
vetnew.removeAllElements();
vetnew.addElement(path);
}
}


}
else
JOptionPane.showMessageDialog(this,"please select a leaf node!");
}
}


}
public void mouseReleased(MouseEvent e){}


public void dragGestureRecognized(DragGestureEvent e) {
// drag anything ...
e.startDrag(DragSource.DefaultCopyDrop, // cursor
new StringSelection("drag well"), // transferable
this); // drag source listener
drag=true;
}
public void dragDropEnd(DragSourceDropEvent e) {}
public void dragEnter(DragSourceDragEvent e) {}
public void dragExit(DragSourceEvent e) {}
public void dragOver(DragSourceDragEvent e) {}
public void dropActionChanged(DragSourceDragEvent e) {}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久精品久久 | 99在线热视频 | 色综合久久久久综合99 | 美女黄影院 | 色播一区 | 欧美日韩国产一区二区三区在线观看 | 欧美一级淫片免费视频1 | 久久伊人国产精品 | 欧美国产成人在线 | 日韩色视频在线观看 | 国产成人高潮免费观看精品 | 久久91久久久久麻豆精品 | 久久99精品久久久久久秒播蜜臀 | 一区二区三区日韩 | 成人做爰高潮片免费视频韩国 | 国产一级一区二区三区 | 色网免费观看 | 巨根插入| 九艹在线 | 羞羞网站在线看 | 亚洲精品欧美二区三区中文字幕 | 91精品国产综合久久久欧美 | 人人舔人人射 | 激情视频在线播放 | 欧美一级α | 国产精品91在线 | 九色中文 | 一本一道久久久a久久久精品91 | 亚洲精品久久久久久下一站 | 激情久久一区二区 | 91网站链接| 国产一区二区三区四区波多野结衣 | 极品大长腿啪啪高潮露脸 | 日韩视频高清 | 国产精品视频成人 | 亚洲免费视频大全 | 午夜视频大全 | 免费国产一区二区视频 | 曰韩黄色片 | 亚洲欧美成aⅴ人在线观看 免费看欧美黑人毛片 | 久久久久久久99 |