是这样。结合起来 jTree。setDropTarget(new DropTarget(jTree,DndDConstants.Action_COPY,new DropTargetWork())
这个DropTargetWork implements DropTargetListener
这个DropTargetWork implements DropTargetListener
解决方案 »
- 请问ESB有什么好处
- 关于一个简单的构造函数的问题!
- 为何阻塞了?
- 大家帮忙看看,为什么setLayout(new GridLayout(1,2))不管用
- 大虾,帮帮我。问个JAVA应用程序占用内存的问题。
- 这两段程序的有什么区别?
- 错误信息: 'class' or 'interface' expected 求助
- OutOfMemoryError应该怎样处理,有高手吗?
- 请问引号里要包含引号该怎么写?
- String s = getDocumentBase().getFile();int i = s.indexOf(58);请问i是多少?
- java能编写.exe文件吗?
- 小应用程序中,鼠标的指针如何改变,this.setCursor(Cursor.HAND_CURSOR);提示我的类中没有setCursor
其他的就没有了
请帮看一下程序,哪里有遗漏呢?
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.plaf.metal.*;
import javax.swing.tree.*;import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.dnd.*;
import java.awt.dnd.peer.*;
import java.awt.event.*;
import java.io.*;public class ResDnDJTree extends JTree
implements TreeSelectionListener,
DragGestureListener, DropTargetListener,
DragSourceListener { /** Variables needed for DnD */
private DragSource dragSource = null;
private DragSourceContext dragSourceContext = null;
/** Constructor */
public ResDnDJTree(TreeNode root) {
super(root); //Add TreeSelectionListener
addTreeSelectionListener(this); dragSource = DragSource.getDefaultDragSource() ; //Add DragGestureListener
DragGestureRecognizer dgr =
dragSource.createDefaultDragGestureRecognizer(
this, //DragSource
DnDConstants.ACTION_COPY_OR_MOVE, //specifies valid actions
this //DragGestureListener
); /* Eliminates right mouse clicks as valid actions - useful especially
* if you implement a JPopupMenu for the JTree
*/
dgr.setSourceActions(dgr.getSourceActions() & ~InputEvent.BUTTON3_MASK); /* First argument: Component to associate the target with
* Second argument: DropTargetListener
*/
//Add DropTargetListener
DropTarget dropTarget = new DropTarget(this, this);
this.setDropTarget( dropTarget );
} public ResDnDJTree(TreeModel tm) {
this((TreeNode)tm.getRoot());
}
///////////////////////// Interface stuff //////////////////// /** DragGestureListener interface method */
public void dragGestureRecognized(DragGestureEvent e) {
System.out.println( "Enter DragGestureListener.dragGestureRecognized()" );
} /** DragSourceListener interface method */
public void dragDropEnd(DragSourceDropEvent dsde) {
System.out.println("Enter DragSourceListener.dragDropEnd()");
} /** DragSourceListener interface method */
public void dragEnter(DragSourceDragEvent dsde) {
System.out.println("Enter DragSourceListener.dragEnter()");
} /** DragSourceListener interface method */
public void dragOver(DragSourceDragEvent dsde) {
System.out.println("Enter DragSourceListener.dragOver()");
} /** DragSourceListener interface method */
public void dropActionChanged(DragSourceDragEvent dsde) {
System.out.println("Enter DragSourceListener.dropActionChanged()");
} /** DragSourceListener interface method */
public void dragExit(DragSourceEvent dsde) {
System.out.println("Enter DragSourceListener.dragExit()");
}
/** DropTargetListener interface method - What we do when drag is released */
public void drop(DropTargetDropEvent e) {
System.out.println("Enter DropTargetListener.drop()");
} //end of method /** DropTaregetListener interface method */
public void dragEnter(DropTargetDragEvent e) {
System.out.println("Enter DropTaregetListener.dragEnter()");
} /** DropTaregetListener interface method */
public void dragExit(DropTargetEvent e) {
System.out.println("Enter DropTaregetListener.dragExit()");
} /** DropTaregetListener interface method */
public void dragOver(DropTargetDragEvent e) {
System.out.println("Etner DropTaregetListener.dragOver()");
} /** DropTaregetListener interface method */
public void dropActionChanged(DropTargetDragEvent e) {
System.out.println("Enter DropTaregetListener.dropActionChanged()");
}
/** TreeSelectionListener - sets selected node */
public void valueChanged(TreeSelectionEvent evt) {
System.out.println("Etner TreeSelectionListener.valueChanged()");
}
} //end of DnDJTree