⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serialselection.java

📁 疯狂Java讲义_源码(含Java设计模式CHM
💻 JAVA
字号:

import java.io.*;
import java.awt.datatransfer.*;
/**
 * Description:
 * <br/>Copyright (C), 2005-2008, Yeeku.H.Lee
 * <br/>This program is protected by copyright laws.
 * <br/>Program Name:
 * <br/>Date:
 * @author  Yeeku.H.Lee kongyeeku@163.com
 * @version  1.0
 */
public class SerialSelection implements Transferable
{
	private Serializable obj;
	public SerialSelection(Serializable obj)
	{
		this.obj = obj;
	}
	public DataFlavor[] getTransferDataFlavors()
	{ 
		DataFlavor[] flavors = new DataFlavor[2];
		//获取被封装对象的类型
		Class clazz = obj.getClass();
		String mimeType = "application/x-java-serialized-object;class=" + clazz.getName();
		try
		{
			flavors[0] = new DataFlavor(mimeType);
			flavors[1] = DataFlavor.stringFlavor;
			return flavors;			
		}
		catch (ClassNotFoundException e)
		{
			return null;
		}

	} 

	public Object getTransferData(DataFlavor flavor)
		throws UnsupportedFlavorException
	{ 
		if(!isDataFlavorSupported(flavor))
		{ 
			throw new UnsupportedFlavorException(flavor);
		} 
		if (flavor.equals(DataFlavor.stringFlavor))
		{
			return obj.toString();
		}
		return obj;
	} 
	public boolean isDataFlavorSupported(DataFlavor flavor)
	{ 
		return flavor.equals(DataFlavor.stringFlavor) ||
			flavor.getPrimaryType().equals("application")
			&& flavor.getSubType().equals("x-java-serialized-object")
			&& flavor.getRepresentationClass().isAssignableFrom(obj.getClass());
	} 
}

⌨️ 快捷键说明

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