java.lang.Object java.awt.datatransfer.SystemFlavorMap
public final class SystemFlavorMap
SystemFlavorMap 是 "native" (String)(对应于特定于平台的数据格式)和 "flavor" (DataFlavor)(对应于与平台无关的 MIME 类型)之间的可配置映射。数据传输子系统使用此映射在 Java 和本机应用程序之间传输数据,以及在独立的 VM 中的 Java 应用程序之间传输数据。
在 Sun 参考实现中,默认的 SystemFlavorMap 是通过文件 jre/lib/flavormap.properties
和 AWT 属性 AWT.DnD.flavorMapFileURL
所引用的 URL 的内容初始化的。有关详细信息,请参阅 flavormap.properties
。
方法摘要 | |
---|---|
void |
addFlavorForUnencodedNative(String nat, DataFlavor flav) 添加从单个 String native 到单个 DataFlavor 的映射。 |
void |
addUnencodedNativeForFlavor(DataFlavor flav, String nat) 添加从指定的 DataFlavor (和等于指定 DataFlavor 的所有 DataFlavor )到指定 String native 的映射。 |
static DataFlavor |
decodeDataFlavor(String nat) 解码 String native 以用作 DataFlavor 。 |
static String |
decodeJavaMIMEType(String nat) 解码 String native 以用作 Java MIME 类型。 |
static String |
encodeDataFlavor(DataFlavor flav) 编码 DataFlavor 以用作 String native。 |
static String |
encodeJavaMIMEType(String mimeType) 编码 MIME 类型以用作 String native。 |
static FlavorMap |
getDefaultFlavorMap() 返回此线程的 ClassLoader 的默认 FlavorMap。 |
List<DataFlavor> |
getFlavorsForNative(String nat) 返回数据传输子系统可以将指定 String native 转换成的 DataFlavor 的 List 。 |
Map<String,DataFlavor> |
getFlavorsForNatives(String[] natives) 返回指定 String native 到其大多数首选 DataFlavor 的 Map 。 |
List<String> |
getNativesForFlavor(DataFlavor flav) 返回数据传输子系统可以将指定 DataFlavor 转换成的 String native 的 List 。 |
Map<DataFlavor,String> |
getNativesForFlavors(DataFlavor[] flavors) 返回指定 DataFlavor 到其大多数首选的 String native 的 Map 。 |
static boolean |
isJavaMIMEType(String str) 返回指定的 String 是否为编码的 Java MIME 类型。 |
void |
setFlavorsForNative(String nat, DataFlavor[] flavors) 放弃指定 String native 的当前映射,而创建指定 DataFlavor 的新映射。 |
void |
setNativesForFlavor(DataFlavor flav, String[] natives) 放弃指定 DataFlavor 和等于指定 DataFlavor 的所有 DataFlavor 的当前映射,并创建到指定 String native 的新映射。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
方法详细信息 |
---|
public static FlavorMap getDefaultFlavorMap()
public List<String> getNativesForFlavor(DataFlavor flav)
DataFlavor
转换成的
String
native 的
List
。该
List
的排序方式是从最好的 native 到最差的 native。即第一个 native 最能将指定 flavor 的数据反映到底层的本机平台。
如果指定的 DataFlavor
以前对于数据传输子系统而言是未知的,并且数据传输子系统未能将此 DataFlavor
转换为任何现有的 native,则调用此方法将在指定的 DataFlavor
和其 MIME 类型的编码版本之间建立一个双向映射,作为其 native。
FlavorTable
中的
getNativesForFlavor
flav
- 应该返回其对应 native 的
DataFlavor
。如果指定
null
,则数据传输子系统当前已知的所有 native 都将以不确定的顺序返回。
java.lang.String
对象的
java.util.List
,这些对象是特定于平台的数据格式的特定于平台的表示形式
encodeDataFlavor(java.awt.datatransfer.DataFlavor)
public List<DataFlavor> getFlavorsForNative(String nat)
String
native 转换成的
DataFlavor
的
List
。该
List
的排序方式是从最好的
DataFlavor
到最差的
DataFlavor
。即第一个
DataFlavor
最能将指定 native 中的数据反映到 Java 应用程序。
如果指定的 native 以前对于数据传输子系统而言是未知的,并且该 native 编码正确,则调用此方法将在指定的 native 和 DataFlavor
(其 MIME 类型为 native 的解码版本)之间建立一个双向映射。
如果指定的 native 不是正确编码的 native,并且此 native 的映射关系没有使用 setFlavorsForNative
进行修改,则 List
的内容是与平台有关的,但是并不能返回 null
。
FlavorTable
中的
getFlavorsForNative
nat
- 应该返回其对应
DataFlavor
的 native。如果指定
null
,则数据传输子系统当前已知的所有
DataFlavor
都将以不确定的顺序返回。
DataFlavor
对象的
java.util.List
,可以将特定于平台的指定 native 中特定于平台的数据转换为这些对象。
encodeJavaMIMEType(java.lang.String)
public Map<DataFlavor,String> getNativesForFlavors(DataFlavor[] flavors)
DataFlavor
到其大多数首选的
String
native 的
Map
。每一个 native 值都将与指定 flavor 的
getNativesForFlavor
所返回 List 中的第一个 native 相同。
如果指定的 DataFlavor
以前对于数据传输子系统是未知的,那么调用此方法将在指定的 DataFlavor
和其 MIME 类型的编码版本之间建立一个双向映射,作为其 native。
FlavorMap
中的
getNativesForFlavors
flavors
- 一组
DataFlavor
,它们是返回
Map
的键集。如果指定了
null
,则返回对数据传输子系统已知的所有
DataFlavor
到其大多数首选
String
native 的映射。
DataFlavor
到
String
native 的
java.util.Map
getNativesForFlavor(java.awt.datatransfer.DataFlavor)
,
encodeDataFlavor(java.awt.datatransfer.DataFlavor)
public Map<String,DataFlavor> getFlavorsForNatives(String[] natives)
String
native 到其大多数首选
DataFlavor
的
Map
。每一个
DataFlavor
值都将与指定 native 的
getFlavorsForNative
所返回 List 中的第一个
DataFlavor
相同。
如果指定的 native 以前对于数据传输子系统而言是未知的,并且该 native 编码正确,则调用此方法将在指定的 native 和 DataFlavor
(其 MIME 类型为 native 的解码版本)之间建立一个双向映射。
FlavorMap
中的
getFlavorsForNatives
native
- 一组
String
,它们是返回
Map
的键集。如果指定了
null
,则返回所有受支持
String
native 到其大多数首选
DataFlavor
的映射。
String
native 到
DataFlavor
的
java.util.Map
getFlavorsForNative(java.lang.String)
,
encodeJavaMIMEType(java.lang.String)
public void addUnencodedNativeForFlavor(DataFlavor flav, String nat)
DataFlavor
(和等于指定
DataFlavor
的所有
DataFlavor
)到指定
String
native 的映射。与
getNativesForFlavor
不同,该映射仅是单向建立的,并且不对 native 进行编码。要建立双向映射,请同时调用
addFlavorForUnencodedNative
。新的映射优先级低于现有映射。如果从指定或相等
DataFlavor
到指定
String
native 的映射已经存在,则此方法无效。
flav
- 该映射的
DataFlavor
键
nat
- 该映射的
String
native 值
NullPointerException
- 如果 flav 或 nat 为
null
addFlavorForUnencodedNative(java.lang.String, java.awt.datatransfer.DataFlavor)
public void setNativesForFlavor(DataFlavor flav, String[] natives)
DataFlavor
和等于指定
DataFlavor
的所有
DataFlavor
的当前映射,并创建到指定
String
native 的新映射。与
getNativesForFlavor
不同,这些映射仅是单向建立的,并且不对 native 进行编码。要建立双向映射,请同时调用
setFlavorsForNative
。数组中的第一个 native 表示最高优先级的映射。后续 native 所表示的映射的优先级是递减的。
如果数组包含多个引用相等 String
native 的元素,则此方法将为其中第一个元素建立新映射,而忽略其余的元素。
建议客户机代码不要重置数据传输子系统建立的映射。此方法仅用于应用程序级的映射。
flav
- 该映射的
DataFlavor
键
natives
- 该映射的
String
native 值
NullPointerException
- 如果 flav 或 native 为
null
或者 native 包含
null
元素
setFlavorsForNative(java.lang.String, java.awt.datatransfer.DataFlavor[])
public void addFlavorForUnencodedNative(String nat, DataFlavor flav)
String
native 到单个
DataFlavor
的映射。与
getFlavorsForNative
不同,该映射仅是单向建立的,并且不对 native 进行编码。要建立双向映射,请同时调用
addUnencodedNativeForFlavor
。新的映射优先级低于现有映射。如果从指定
String
native 到指定或相等
DataFlavor
的映射已经存在,则此方法无效。
nat
- 该映射的
String
native 键
flav
- 该映射的
DataFlavor
值
NullPointerException
- 如果 nat 或 flav 为
null
addUnencodedNativeForFlavor(java.awt.datatransfer.DataFlavor, java.lang.String)
public void setFlavorsForNative(String nat, DataFlavor[] flavors)
String
native 的当前映射,而创建指定
DataFlavor
的新映射。与
getFlavorsForNative
不同,这些映射将仅是单向建立的,并且不需要对 native 进行编码。要建立双向映射,请同时调用
setNativesForFlavor
。数组中的第一个
DataFlavor
表示最高优先级的映射。后续
DataFlavor
所表示的映射的优先级是递减的。
如果数组包含多个引用相等 DataFlavor
的元素,则为其中的第一个元素建立新映射,而忽略其余的元素。
建议客户机代码不要重置数据传输子系统建立的映射。此方法仅用于应用程序级的映射。
nat
- 映射的
String
native 键
flavor
- 映射的
DataFlavor
值
NullPointerException
- 如果 nat 或 flavor 为
null
或者 flavor 包含
null
元素
setNativesForFlavor(java.awt.datatransfer.DataFlavor, java.lang.String[])
public static String encodeJavaMIMEType(String mimeType)
String
native。MIME 类型的编码表示形式的格式是与实现有关的。仅有的限制是:
String
为 null
时,编码表示形式为 null
。null
MIME 类型 String
的编码表示形式相等的条件是,当且仅当根据 String.equals(Object)
这些 String
相等。 Sun 对此方法的参考实现返回指定 MIME 类型 String
,前缀为 JAVA_DATAFLAVOR:
。
mimeType
- 要编码的 MIME 类型
String
,如果 mimeType 为
null
,则返回
null
public static String encodeDataFlavor(DataFlavor flav)
DataFlavor
以用作
String
native。编码的
DataFlavor
的格式是与实现有关的。仅有的限制是:
DataFlavor
为 null
或者其 MIME 类型 String
为 null
时,编码表示形式为 null
。null
MIME 类型 String
的两个非 null
DataFlavor
的编码表示形式相等的条件是,根据 String.equals(Object)
当且仅当这些 DataFlavor
的 MIME 类型 String
相等。 Sun 对此方法的参考实现返回前缀为 JAVA_DATAFLAVOR:
的指定 DataFlavor
的 MIME 类型 String
。
flav
- 要编码的
DataFlavor
String
,如果 flav 为
null
或者具有
null
MIME 类型,则返回
null
public static boolean isJavaMIMEType(String str)
String
是否为编码的 Java MIME 类型。
str
- 要测试的
String
String
进行了编码,则返回
true
;否则返回
false
public static String decodeJavaMIMEType(String nat)
String
native 以用作 Java MIME 类型。
nat
- 要解码的
String
String
native,则返回
null
public static DataFlavor decodeDataFlavor(String nat) throws ClassNotFoundException
String
native 以用作
DataFlavor
。
nat
- 要解码的
String
DataFlavor
,如果 nat 不是编码的
String
native,则返回
null
ClassNotFoundException