Class SystemFlavorMap

java.lang.Object
java.awt.datatransfer.SystemFlavorMap
所有已实现的接口:
FlavorMap, FlavorTable

public final class SystemFlavorMap extends Object implements FlavorMap, FlavorTable
SystemFlavorMap是一个可配置的映射,将“本地”(字符串)与平台特定数据格式对应的“flavors”(DataFlavors)以及与平台无关的MIME类型对应起来。此映射由数据传输子系统用于在Java和本地应用程序之间以及在单独的VM中的Java应用程序之间传输数据。
自:
1.2
  • Method Details

    • getDefaultFlavorMap

      public static FlavorMap getDefaultFlavorMap()
      返回此线程的ClassLoader的默认FlavorMap。
      返回:
      此线程的ClassLoader的默认FlavorMap
    • getNativesForFlavor

      public List<String> getNativesForFlavor(DataFlavor flav)
      返回List,其中包含数据传输子系统可以将指定DataFlavor转换为的String本地。该List将从最佳本地到最差本地进行排序。也就是说,第一个本地将最好地反映指定flavor中的数据到底层本地平台。

      如果数据传输子系统先前未知指定的DataFlavor,并且数据传输子系统无法将此DataFlavor转换为任何现有本地,则调用此方法将在指定DataFlavor和其MIME类型的编码版本之间建立双向映射。

      指定者:
      getNativesForFlavor 在接口 FlavorTable
      参数:
      flav - 应返回其对应本地的DataFlavor。如果指定null,则以非确定性顺序返回数据传输子系统当前已知的所有本地。
      返回:
      一个java.util.List,其中包含平台特定数据格式的平台特定表示
      自:
      1.4
      参见:
    • getFlavorsForNative

      public List<DataFlavor> getFlavorsForNative(String nat)
      返回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

      public Map<DataFlavor,String> getNativesForFlavors(DataFlavor[] flavors)
      返回指定DataFlavor到其最优选String本地的Map。每个本地值将与指定flavor的getNativesForFlavor返回的列表中的第一个本地相同。

      如果指定的DataFlavor先前未知数据传输子系统,则调用此方法将在指定DataFlavor和其MIME类型的编码版本之间建立双向映射。

      指定者:
      getNativesForFlavors 在接口 FlavorMap
      参数:
      flavors - 将是返回的Map的键集的DataFlavor数组。如果指定null,则将返回数据传输子系统已知的所有DataFlavor到其最优选String本地的映射。
      返回:
      一个java.util.Map,将DataFlavor映射到String本地
      参见:
    • getFlavorsForNatives

      public Map<String,DataFlavor> getFlavorsForNatives(String[] natives)
      返回指定String本地到其最优选DataFlavorMap。每个DataFlavor值将与指定本地的getFlavorsForNative返回的列表中的第一个DataFlavor相同。

      如果指定的本地先前未知数据传输子系统,并且该本地已经被正确编码,则调用此方法将在指定本地和其MIME类型为解码版本的DataFlavor之间建立双向映射。

      指定者:
      getFlavorsForNatives 在接口 FlavorMap
      参数:
      natives - 将是返回的Map的键集的String数组。如果指定null,则将返回所有支持的String本地到其最优选DataFlavor的映射。
      返回:
      一个java.util.Map,将String本地映射到DataFlavors
      参见:
    • addUnencodedNativeForFlavor

      public void addUnencodedNativeForFlavor(DataFlavor flav, String nat)
      添加从指定DataFlavor(以及与指定DataFlavor相等的所有DataFlavor)到指定String本地的映射。与getNativesForFlavor不同,该映射只会在单向建立,并且本地不会被编码。要建立双向映射,请同时调用addFlavorForUnencodedNative。新映射的优先级将低于任何现有映射。如果指定的DataFlavor或相等的DataFlavor到指定String本地的映射已存在,则此方法不起作用。
      参数:
      flav - 映射的DataFlavor
      nat - 映射的String本地值
      抛出:
      NullPointerException - 如果flav或nat为null
      自:
      1.4
      参见:
    • setNativesForFlavor

      public void setNativesForFlavor(DataFlavor flav, String[] natives)
      丢弃指定的DataFlavor及所有等于指定DataFlavor的当前映射,并创建到指定String原生数据的新映射。与getNativesForFlavor不同,这些映射只会建立单向关系,原生数据不会被编码。要建立双向映射,请同时调用setFlavorsForNative。数组中的第一个原生数据将表示最高优先级映射。后续的原生数据将表示优先级递减的映射。

      如果数组包含多个引用相等的String原生数据的元素,则此方法将为这些元素中的第一个建立新映射,并忽略其余元素。

      建议客户端代码不要重置数据传输子系统建立的映射。此方法应仅用于应用级别的映射。

      参数:
      flav - 映射的DataFlavor
      natives - 映射的String原生数据值
      抛出:
      NullPointerException - 如果flav或natives为null,或者natives包含null元素
      自版本:
      1.4
      参见:
    • addFlavorForUnencodedNative

      public void addFlavorForUnencodedNative(String nat, DataFlavor flav)
      添加从单个String原生数据到单个DataFlavor的映射。与getFlavorsForNative不同,这个映射只会建立单向关系,原生数据不会被编码。要建立双向映射,请同时调用addUnencodedNativeForFlavor。新映射的优先级将低于任何现有映射。如果从指定的String原生数据到指定或相等的DataFlavor的映射已经存在,则此方法不起作用。
      参数:
      nat - 映射的String原生数据键
      flav - 映射的DataFlavor
      抛出:
      NullPointerException - 如果natflavnull
      自版本:
      1.4
      参见:
    • setFlavorsForNative

      public void setFlavorsForNative(String nat, DataFlavor[] flavors)
      丢弃指定的String原生数据的当前映射,并创建到指定DataFlavor的新映射。与getFlavorsForNative不同,这些映射只会建立单向关系,原生数据不需要被编码。要建立双向映射,请同时调用setNativesForFlavor。数组中的第一个DataFlavor将表示最高优先级映射。后续的DataFlavor将表示优先级递减的映射。

      如果数组包含多个引用相等的DataFlavor,此方法将为这些元素中的第一个建立新映射,并忽略其余元素。

      建议客户端代码不要重置数据传输子系统建立的映射。此方法应仅用于应用级别的映射。

      参数:
      nat - 映射的String原生数据键
      flavors - 映射的DataFlavor
      抛出:
      NullPointerException - 如果natflavorsnull,或者flavors包含null元素
      自版本:
      1.4
      参见:
    • encodeJavaMIMEType

      public static String encodeJavaMIMEType(String mimeType)
      为在Java中使用的MIME类型编码一个String原生数据。MIME类型的编码表示格式取决于实现。唯一的限制是:
      • 如果MIME类型Stringnull,则编码表示为null
      • 两个非null的MIME类型String的编码表示仅在这些String根据String.equals(Object)相等时才相等
      此方法的参考实现返回指定的MIME类型String前缀为JAVA_DATAFLAVOR:
      参数:
      mimeType - 要编码的MIME类型
      返回:
      编码的String,如果mimeTypenull则返回null
    • encodeDataFlavor

      public static String encodeDataFlavor(DataFlavor flav)
      为在Java中使用的String原生数据编码一个DataFlavor。编码的DataFlavor格式取决于实现。唯一的限制是:
      • 如果指定的DataFlavornull或其MIME类型Stringnull,则编码表示为null
      • 两个非nullDataFlavor与非null的MIME类型String的编码表示仅在这些DataFlavor的MIME类型String根据String.equals(Object)相等时才相等
      此方法的参考实现返回指定DataFlavor的MIME类型String前缀为JAVA_DATAFLAVOR:
      参数:
      flav - 要编码的DataFlavor
      返回:
      编码的String,如果flavnull或具有null的MIME类型则返回null
    • isJavaMIMEType

      public static boolean isJavaMIMEType(String str)
      返回指定的String是否为编码的Java MIME类型。
      参数:
      str - 要测试的String
      返回:
      如果String已编码则返回true;否则返回false
    • decodeJavaMIMEType

      public static String decodeJavaMIMEType(String nat)
      为在Java中使用的Java MIME类型解码一个String原生数据。
      参数:
      nat - 要解码的String
      返回:
      解码后的Java MIME类型,如果nat不是编码的String原生数据则返回null
    • decodeDataFlavor

      public static DataFlavor decodeDataFlavor(String nat) throws ClassNotFoundException
      为在Java中使用的DataFlavor解码一个String原生数据。
      参数:
      nat - 要解码的String
      返回:
      解码后的DataFlavor,如果nat不是编码的String原生数据则返回null
      抛出:
      ClassNotFoundException - 如果数据类型的类未加载