繼承關係
java.awt.datatransfer類 SystemFlavorMap
java.lang.Object
java.awt.datatransfer.SystemFlavorMap
FlavorMap, FlavorTablepublic final class SystemFlavorMap extends Objectimplements 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 轉換成的 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 的新映射。 |
clone, equals, finalize, getClass, hashCode, Notify, notifyAll, toString, wait, wait, wait
方法詳細信息
getDefaultFlavorMappublic static FlavorMapgetDefaultFlavorMap()
返回此執行緒的 ClassLoader 的默認 FlavorMap。
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)
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 中特定於平台的數據轉換為這些對象。 從以下版本開始:1.4
另請參見: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
從以下版本開始:1.4
另請參見: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 元素
從以下版本開始:1.4
另請參見: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
從以下版本開始:1.4
另請參見: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 元素
從以下版本開始:1.4
另請參見:setNativesForFlavor(java.awt.datatransfer.DataFlavor, java.lang.String[])
public static StringencodeJavaMIMEType(String mimeType)編碼 MIME 類型以用作 String native。MIME 類型的編碼表示形式的格式是與實現有關的。僅有的限制是:
若且唯若 MIME 類型 String 為 null 時,編碼表示形式為 null。
兩個非 null MIME 類型 String 的編碼表示形式相等的條件是,若且唯若根據 String.equals(Object) 這些 String 相等。Sun 對此方法的參考實現返回指定 MIME 類型 String,前綴為 JAVA_DATAFLAVOR:。
參數:mimeType - 要編碼的 MIME 類型 返回:編碼的 String,如果 mimeType 為 null,則返回 null
public static StringencodeDataFlavor(DataFlavor flav)編碼 DataFlavor 以用作 String native。編碼的 DataFlavor 的格式是與實現有關的。僅有的限制是:
若且唯若指定 DataFlavor 為 null 或者其 MIME 類型 String 為 null 時,編碼表示形式為 null。
具有非 null MIME 類型 String 的兩個非 nullDataFlavor 的編碼表示形式相等的條件是,根據 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
decodeJavaMIMEType
public static StringdecodeJavaMIMEType(String nat)解碼 String native 以用作 Java MIME 類型。 參數:nat - 要解碼的 String返回:解碼的 Java MIME 類型,如果 nat 不是編碼的 String native,則返回 null
public static DataFlavordecodeDataFlavor(String nat) throws ClassNotFoundException解碼 String native 以用作 DataFlavor。
參數:nat - 要解碼的 String返回:解碼的 DataFlavor,如果 nat 不是編碼的 String native,則返回 null拋出:ClassNotFoundException