java.lang.Object
java.awt.datatransfer.SystemFlavorMap
- 所有已实现的接口:
-
FlavorMap
,FlavorTable
SystemFlavorMap是一个可配置的映射,将“本地”(字符串)与平台特定数据格式对应的“flavors”(DataFlavors)以及与平台无关的MIME类型对应起来。此映射由数据传输子系统用于在Java和本地应用程序之间以及在单独的VM中的Java应用程序之间传输数据。
- 自:
- 1.2
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addFlavorForUnencodedNative
(String nat, DataFlavor flav) 添加从单个String
本地到单个DataFlavor
的映射。void
addUnencodedNativeForFlavor
(DataFlavor flav, String nat) 添加从指定DataFlavor
(以及与指定DataFlavor
相等的所有DataFlavor
)到指定String
本地的映射。static DataFlavor
decodeDataFlavor
(String nat) 解码用作DataFlavor
的String
本地。static String
decodeJavaMIMEType
(String nat) 解码用作Java MIME类型的String
本地。static String
encodeDataFlavor
(DataFlavor flav) 编码DataFlavor
以用作String
本地。static String
encodeJavaMIMEType
(String mimeType) 编码MIME类型以用作String
本地。static FlavorMap
返回此线程的ClassLoader的默认FlavorMap。返回List
,其中包含数据传输子系统可以将指定String
本地转换为的DataFlavor
。getFlavorsForNatives
(String[] natives) 返回指定String
本地到其最优选DataFlavor
的Map
。返回List
,其中包含数据传输子系统可以将指定DataFlavor
转换为的String
本地。getNativesForFlavors
(DataFlavor[] flavors) 返回指定DataFlavor
到其最优选String
本地的Map
。static boolean
isJavaMIMEType
(String str) 返回指定String
是否为编码的Java MIME类型。void
setFlavorsForNative
(String nat, DataFlavor[] flavors) 丢弃指定String
本地的当前映射,并创建到指定DataFlavor
的新映射。void
setNativesForFlavor
(DataFlavor flav, String[] natives) 丢弃指定DataFlavor
及所有等于指定DataFlavor
的DataFlavor
的当前映射,并创建到指定String
本地的新映射。
-
Method Details
-
getDefaultFlavorMap
返回此线程的ClassLoader的默认FlavorMap。- 返回:
- 此线程的ClassLoader的默认FlavorMap
-
getNativesForFlavor
返回List
,其中包含数据传输子系统可以将指定DataFlavor
转换为的String
本地。该List
将从最佳本地到最差本地进行排序。也就是说,第一个本地将最好地反映指定flavor中的数据到底层本地平台。如果数据传输子系统先前未知指定的
DataFlavor
,并且数据传输子系统无法将此DataFlavor
转换为任何现有本地,则调用此方法将在指定DataFlavor
和其MIME类型的编码版本之间建立双向映射。- 指定者:
-
getNativesForFlavor
在接口FlavorTable
- 参数:
-
flav
- 应返回其对应本地的DataFlavor
。如果指定null
,则以非确定性顺序返回数据传输子系统当前已知的所有本地。 - 返回:
-
一个
java.util.List
,其中包含平台特定数据格式的平台特定表示 - 自:
- 1.4
- 参见:
-
getFlavorsForNative
返回List
,其中包含数据传输子系统可以将指定String
本地转换为的DataFlavor
。该List
将从最佳DataFlavor
到最差DataFlavor
进行排序。也就是说,第一个DataFlavor
将最好地反映指定本地中的数据到Java应用程序。如果数据传输子系统先前未知指定的本地,并且该本地已经被正确编码,则调用此方法将在指定本地和其MIME类型为本地的解码版本之间建立双向映射。
如果指定的本地不是正确编码的本地,并且这些本地的映射未经
setFlavorsForNative
更改,则List
的内容取决于平台,但不能返回null
。- 指定者:
-
getFlavorsForNative
在接口FlavorTable
- 参数:
-
nat
- 应返回其对应DataFlavor
的本地。如果指定null
,则以非确定性顺序返回数据传输子系统当前已知的所有DataFlavor
。 - 返回:
-
一个
java.util.List
,其中包含指定平台特定本地中的平台特定数据可以转换为的DataFlavor
对象 - 自:
- 1.4
- 参见:
-
getNativesForFlavors
返回指定DataFlavor
到其最优选String
本地的Map
。每个本地值将与指定flavor的getNativesForFlavor
返回的列表中的第一个本地相同。如果指定的
DataFlavor
先前未知数据传输子系统,则调用此方法将在指定DataFlavor
和其MIME类型的编码版本之间建立双向映射。- 指定者:
-
getNativesForFlavors
在接口FlavorMap
- 参数:
-
flavors
- 将是返回的Map
的键集的DataFlavor
数组。如果指定null
,则将返回数据传输子系统已知的所有DataFlavor
到其最优选String
本地的映射。 - 返回:
-
一个
java.util.Map
,将DataFlavor
映射到String
本地 - 参见:
-
getFlavorsForNatives
返回指定String
本地到其最优选DataFlavor
的Map
。每个DataFlavor
值将与指定本地的getFlavorsForNative
返回的列表中的第一个DataFlavor
相同。如果指定的本地先前未知数据传输子系统,并且该本地已经被正确编码,则调用此方法将在指定本地和其MIME类型为解码版本的
DataFlavor
之间建立双向映射。- 指定者:
-
getFlavorsForNatives
在接口FlavorMap
- 参数:
-
natives
- 将是返回的Map
的键集的String
数组。如果指定null
,则将返回所有支持的String
本地到其最优选DataFlavor
的映射。 - 返回:
-
一个
java.util.Map
,将String
本地映射到DataFlavor
s - 参见:
-
addUnencodedNativeForFlavor
添加从指定DataFlavor
(以及与指定DataFlavor
相等的所有DataFlavor
)到指定String
本地的映射。与getNativesForFlavor
不同,该映射只会在单向建立,并且本地不会被编码。要建立双向映射,请同时调用addFlavorForUnencodedNative
。新映射的优先级将低于任何现有映射。如果指定的DataFlavor
或相等的DataFlavor
到指定String
本地的映射已存在,则此方法不起作用。- 参数:
-
flav
- 映射的DataFlavor
键 -
nat
- 映射的String
本地值 - 抛出:
-
NullPointerException
- 如果flav或nat为null
- 自:
- 1.4
- 参见:
-
setNativesForFlavor
丢弃指定的DataFlavor
及所有等于指定DataFlavor
的当前映射,并创建到指定String
原生数据的新映射。与getNativesForFlavor
不同,这些映射只会建立单向关系,原生数据不会被编码。要建立双向映射,请同时调用setFlavorsForNative
。数组中的第一个原生数据将表示最高优先级映射。后续的原生数据将表示优先级递减的映射。如果数组包含多个引用相等的
String
原生数据的元素,则此方法将为这些元素中的第一个建立新映射,并忽略其余元素。建议客户端代码不要重置数据传输子系统建立的映射。此方法应仅用于应用级别的映射。
- 参数:
-
flav
- 映射的DataFlavor
键 -
natives
- 映射的String
原生数据值 - 抛出:
-
NullPointerException
- 如果flav或natives为null
,或者natives包含null
元素 - 自版本:
- 1.4
- 参见:
-
addFlavorForUnencodedNative
添加从单个String
原生数据到单个DataFlavor
的映射。与getFlavorsForNative
不同,这个映射只会建立单向关系,原生数据不会被编码。要建立双向映射,请同时调用addUnencodedNativeForFlavor
。新映射的优先级将低于任何现有映射。如果从指定的String
原生数据到指定或相等的DataFlavor
的映射已经存在,则此方法不起作用。- 参数:
-
nat
- 映射的String
原生数据键 -
flav
- 映射的DataFlavor
值 - 抛出:
-
NullPointerException
- 如果nat
或flav
为null
- 自版本:
- 1.4
- 参见:
-
setFlavorsForNative
丢弃指定的String
原生数据的当前映射,并创建到指定DataFlavor
的新映射。与getFlavorsForNative
不同,这些映射只会建立单向关系,原生数据不需要被编码。要建立双向映射,请同时调用setNativesForFlavor
。数组中的第一个DataFlavor
将表示最高优先级映射。后续的DataFlavor
将表示优先级递减的映射。如果数组包含多个引用相等的
DataFlavor
,此方法将为这些元素中的第一个建立新映射,并忽略其余元素。建议客户端代码不要重置数据传输子系统建立的映射。此方法应仅用于应用级别的映射。
- 参数:
-
nat
- 映射的String
原生数据键 -
flavors
- 映射的DataFlavor
值 - 抛出:
-
NullPointerException
- 如果nat
或flavors
为null
,或者flavors
包含null
元素 - 自版本:
- 1.4
- 参见:
-
encodeJavaMIMEType
为在Java中使用的MIME类型编码一个String
原生数据。MIME类型的编码表示格式取决于实现。唯一的限制是:- 如果MIME类型
String
为null
,则编码表示为null
- 两个非
null
的MIME类型String
的编码表示仅在这些String
根据String.equals(Object)
相等时才相等
String
前缀为JAVA_DATAFLAVOR:
。- 参数:
-
mimeType
- 要编码的MIME类型 - 返回:
-
编码的
String
,如果mimeType
为null
则返回null
- 如果MIME类型
-
encodeDataFlavor
为在Java中使用的String
原生数据编码一个DataFlavor
。编码的DataFlavor
格式取决于实现。唯一的限制是:- 如果指定的
DataFlavor
为null
或其MIME类型String
为null
,则编码表示为null
- 两个非
null
的DataFlavor
与非null
的MIME类型String
的编码表示仅在这些DataFlavor
的MIME类型String
根据String.equals(Object)
相等时才相等
DataFlavor
的MIME类型String
前缀为JAVA_DATAFLAVOR:
。- 参数:
-
flav
- 要编码的DataFlavor
- 返回:
-
编码的
String
,如果flav
为null
或具有null
的MIME类型则返回null
- 如果指定的
-
isJavaMIMEType
返回指定的String
是否为编码的Java MIME类型。- 参数:
-
str
- 要测试的String
- 返回:
-
如果
String
已编码则返回true
;否则返回false
-
decodeJavaMIMEType
为在Java中使用的Java MIME类型解码一个String
原生数据。- 参数:
-
nat
- 要解码的String
- 返回:
-
解码后的Java MIME类型,如果
nat
不是编码的String
原生数据则返回null
-
decodeDataFlavor
为在Java中使用的DataFlavor
解码一个String
原生数据。- 参数:
-
nat
- 要解码的String
- 返回:
-
解码后的
DataFlavor
,如果nat
不是编码的String
原生数据则返回null
- 抛出:
-
ClassNotFoundException
- 如果数据类型的类未加载
-