JavaTM 2 Platform
Standard Ed. 6

java.awt.datatransfer
類別 SystemFlavorMap

java.lang.Object
  繼承者 java.awt.datatransfer.SystemFlavorMap
所有已實作的介面:
FlavorMap, FlavorTable

public final class SystemFlavorMap
extends Object
implements FlavorMap, FlavorTable

SystemFlavorMap 是 "native" (String)(對應於特定於平臺的資料格式)和 "flavor" (DataFlavor)(對應於與平臺無關的 MIME 型別)之間的可配置映射。資料傳輸子系統使用此映射在 Java 和本機應用程序之間傳輸資料,以及在獨立的 VM 中的 Java 應用程序之間傳輸資料。

在 Sun 參考實作中,預設的 SystemFlavorMap 是通過檔案 jre/lib/flavormap.properties 和 AWT 屬性 AWT.DnD.flavorMapFileURL 所參考的 URL 的內容初始化的。有關詳細資訊,請參閱 flavormap.properties

從以下版本開始:
1.2

方法摘要
 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 轉換成的 DataFlavorList
 Map<String,DataFlavor> getFlavorsForNatives(String[] natives)
          返回指定 String native 到其大多數首選 DataFlavorMap
 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
 

方法詳細資訊

getDefaultFlavorMap

public static FlavorMap getDefaultFlavorMap()
返回此執行緒的 ClassLoader 的預設 FlavorMap。


getNativesForFlavor

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,這些物件是特定於平臺的資料格式的特定於平臺的表示形式
從以下版本開始:
1.4
另請參見:
encodeDataFlavor(java.awt.datatransfer.DataFlavor)

getFlavorsForNative

public List<DataFlavor> getFlavorsForNative(String nat)
返回資料傳輸子系統可以將指定 String native 轉換成的 DataFlavorList。該 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 中特定於平臺的資料轉換為這些物件。
從以下版本開始:
1.4
另請參見:
encodeJavaMIMEType(java.lang.String)

getNativesForFlavors

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 的映射。
返回:
DataFlavorString native 的 java.util.Map
另請參見:
getNativesForFlavor(java.awt.datatransfer.DataFlavor), encodeDataFlavor(java.awt.datatransfer.DataFlavor)

getFlavorsForNatives

public Map<String,DataFlavor> getFlavorsForNatives(String[] natives)
返回指定 String native 到其大多數首選 DataFlavorMap。每一個 DataFlavor 值都將與指定 native 的 getFlavorsForNative 所返回 List 中的第一個 DataFlavor 相同。

如果指定的 native 以前對於資料傳輸子系統而言是未知的,並且該 native 編碼正確,則調用此方法將在指定的 native 和 DataFlavor(其 MIME 型別為 native 的解碼版本)之間建立一個雙向映射。

指定者:
介面 FlavorMap 中的 getFlavorsForNatives
參數:
native - 一組 String,它們是返回 Map 的鍵集。如果指定了 null,則返回所有受支持 String native 到其大多數首選 DataFlavor 的映射。
返回:
String native 到 DataFlavorjava.util.Map
另請參見:
getFlavorsForNative(java.lang.String), encodeJavaMIMEType(java.lang.String)

addUnencodedNativeForFlavor

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
從以下版本開始:
1.4
另請參見:
addFlavorForUnencodedNative(java.lang.String, java.awt.datatransfer.DataFlavor)

setNativesForFlavor

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 元素
從以下版本開始:
1.4
另請參見:
setFlavorsForNative(java.lang.String, java.awt.datatransfer.DataFlavor[])

addFlavorForUnencodedNative

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
從以下版本開始:
1.4
另請參見:
addUnencodedNativeForFlavor(java.awt.datatransfer.DataFlavor, java.lang.String)

setFlavorsForNative

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 元素
從以下版本開始:
1.4
另請參見:
setNativesForFlavor(java.awt.datatransfer.DataFlavor, java.lang.String[])

encodeJavaMIMEType

public static String encodeJavaMIMEType(String mimeType)
編碼 MIME 型別以用作 String native。MIME 型別的編碼表示形式的格式是與實作有關的。僅有的限制是:

Sun 對此方法的參考實作返回指定 MIME 型別 String,前綴為 JAVA_DATAFLAVOR:

參數:
mimeType - 要編碼的 MIME 型別
返回:
編碼的 String,如果 mimeType 為 null,則返回 null

encodeDataFlavor

public static String encodeDataFlavor(DataFlavor flav)
編碼 DataFlavor 以用作 String native。編碼的 DataFlavor 的格式是與實作有關的。僅有的限制是:

Sun 對此方法的參考實作返回前綴為 JAVA_DATAFLAVOR: 的指定 DataFlavor 的 MIME 型別 String

參數:
flav - 要編碼的 DataFlavor
返回:
編碼的 String,如果 flav 為 null 或者具有 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)
解碼 String native 以用作 Java MIME 型別。

參數:
nat - 要解碼的 String
返回:
解碼的 Java MIME 型別,如果 nat 不是編碼的 String native,則返回 null

decodeDataFlavor

public static DataFlavor decodeDataFlavor(String nat)
                                   throws ClassNotFoundException
解碼 String native 以用作 DataFlavor

參數:
nat - 要解碼的 String
返回:
解碼的 DataFlavor,如果 nat 不是編碼的 String native,則返回 null
拋出:
ClassNotFoundException

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only