draglabel.java

来自「JAVA初学者的源代码例子,从不同的应用方面讲解--控件篇」· Java 代码 · 共 37 行

JAVA
37
字号
import javax.swing.*;
import java.awt.dnd.*;
import java.awt.datatransfer.*;

public class DragLabel extends JLabel implements DropTargetListener{
	
	public DragLabel(String str){
		super(str);  //调用父类构造函数
	}
	
	public void dragEnter(DropTargetDragEvent evt) {
	}
	public void dragOver(DropTargetDragEvent evt) {
	}
	public void dropActionChanged(DropTargetDragEvent evt) {
	}
	public void dragExit(DropTargetEvent evt) {
	}
	public void drop(DropTargetDropEvent evt) {  //拖动操作处理
		try{
			Transferable trans = evt.getTransferable(); //得以Transferable对象
			if (evt.isDataFlavorSupported(DataFlavor.stringFlavor)){ //是否支持拖动
				evt.acceptDrop(evt.getDropAction()); //接受拖动
				String s = (String) trans.getTransferData(DataFlavor.stringFlavor); //得到拖动数据
				setText(s); //设置标签的文本
				evt.dropComplete(true); //结束拖动
			}else{
				evt.rejectDrop(); //拒绝托运

			}
		}catch(Exception err){
			err.printStackTrace(); //输出出错信息
		}
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?