JavaTM 2 Platform
Standard Ed. 6

javax.swing
類別 TransferHandler.TransferSupport

java.lang.Object
  繼承者 javax.swing.TransferHandler.TransferSupport
正在封閉類別:
TransferHandler

public static final class TransferHandler.TransferSupport
extends Object

此類別封裝剪貼板或拖放傳輸的所有相關詳細資訊,並且還允許自定義拖放過程的各方面。

此類別的主要目的是提供開發人員需要的資訊,以便確定傳輸的適合性或者導入傳輸中包含的資料。但它同時又是一個控制器,可自定義拖放過程中的屬性,比如是否顯示放置位置,使用哪種放置動作等。

開發人員通常不需要創建此類別的實例。它們是 DnD 實作向 TransferHandler 中的某些方法提供的。

從以下版本開始:
1.6
另請參見:
TransferHandler.canImport(TransferHandler.TransferSupport), TransferHandler.importData(TransferHandler.TransferSupport)

建構子摘要
TransferHandler.TransferSupport(Component component, Transferable transferable)
          使用給定元件和 Transferable 創建一個 TransferSupport,對於該 TransferSupport isDrop() 返回 false
 
方法摘要
 Component getComponent()
          返回此傳輸的目標元件。
 DataFlavor[] getDataFlavors()
          返回此傳輸的資料 flavor。
 int getDropAction()
          當此 TransferSupport 表示放置操作時,返回為其選擇的動作。
 TransferHandler.DropLocation getDropLocation()
          此 TransferSupport 表示一個放置操作時,返回元件的當前放置位置(非 null)。
 int getSourceDropActions()
          當此 TransferSupport 表示放置操作時,返回拖動源受支持的放置動作。
 Transferable getTransferable()
          返回與此傳輸關聯的 Transferable
 int getUserDropAction()
          當此 TransferSupport 表示一個放置操作時,返回其使用者放置動作。
 boolean isDataFlavorSupported(DataFlavor df)
          返回是否支持給定的資料 flavor。
 boolean isDrop()
          返回此 TransferSupport 是否表示一個放置操作。
 void setDropAction(int dropAction)
          將傳輸(必須表示一個放置操作)的放置動作設置為給定動作,而不是預設的使用者放置動作。
 void setShowDropLocation(boolean showDropLocation)
          設置是否應該為傳輸(必須表示一個放置操作)可視地指出放置位置。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

TransferHandler.TransferSupport

public TransferHandler.TransferSupport(Component component,
                                       Transferable transferable)
使用給定元件和 Transferable 創建一個 TransferSupport,對於該 TransferSupport isDrop() 返回 false

參數:
component - 目標元件
transferable - transferable
拋出:
NullPointerException - 如果任一參數為 null
方法詳細資訊

isDrop

public boolean isDrop()
返回此 TransferSupport 是否表示一個放置操作。

返回:
如果這是一個放置操作,則返回 true;否則返回 false

getComponent

public Component getComponent()
返回此傳輸的目標元件。

返回:
目標元件

getDropLocation

public TransferHandler.DropLocation getDropLocation()
TransferSupport 表示一個放置操作時,返回元件的當前放置位置(非 null)。

註:對於帶內置放置操作支持的元件,此位置將是一個 DropLocation 的子類別,該 DropLocation 的型別與該元件的 getDropLocation 方法返回的相同。

此方法只用於拖放傳輸。isDrop()false 時調用此方法將導致 IllegalStateException

返回:
放置位置
拋出:
IllegalStateException - 如果此 TransferSupport 不是一個放置操作
另請參見:
isDrop

setShowDropLocation

public void setShowDropLocation(boolean showDropLocation)
設置是否應該為傳輸(必須表示一個放置操作)可視地指出放置位置。此方法用於那些在拖放操作過程的適當時候能夠自動顯示放置位置的元件。預設情況下,只有在 TransferHandler 已宣告它能夠接受此 TransferSupport 表示的導入時才顯示放置位置。使用此方法,可以將放置位置強制改為總是顯示,或總是不顯示。

此方法只用於拖放傳輸。isDrop()false 時調用此方法將導致 IllegalStateException

參數:
showDropLocation - 是否指示放置位置
拋出:
IllegalStateException - 如果此 TransferSupport 不是一個放置操作
另請參見:
isDrop

setDropAction

public void setDropAction(int dropAction)
將傳輸(必須表示一個放置操作)的放置動作設置為給定動作,而不是預設的使用者放置動作。此動作必須受源放置動作的支持,並且必須為 COPYMOVELINK 之一。

此方法只用於拖放傳輸。isDrop()false 時調用此方法將導致 IllegalStateException

參數:
dropAction - 放置動作
拋出:
IllegalStateException - 如果此 TransferSupport 不是一個放置操作
IllegalArgumentException - 如果指定了無效的動作
另請參見:
getDropAction(), getUserDropAction(), getSourceDropActions(), isDrop

getDropAction

public int getDropAction()
當此 TransferSupport 表示放置操作時,返回為其選擇的動作。

除非通過 setDropAction 顯式地選擇,否則此方法返回 getUserDropAction 提供的使用者放置動作。

可以使用 TransferHandlerimportData 方法查詢此動作,以便根據該動作自定義處理方法。

此方法只用於拖放傳輸。isDrop()false 時調用此方法將導致 IllegalStateException

返回:
為放置操作選擇的動作 throws IllegalStateException 如果此 TransferSupport 不是一個放置操作
另請參見:
setDropAction(int), getUserDropAction(), isDrop

getUserDropAction

public int getUserDropAction()
當此 TransferSupport 表示一個放置操作時,返回其使用者放置動作。

根據 DropTargetDragEventDropTargetDropEvent 文檔中的描述,為放置操作選擇使用者放置動作。通過 setDropAction 方法,可以選擇不同的動作作為放置動作。

當要確定放置操作的適合性或者對顯式地選擇放置動作作決定的時候,可以使用 TransferHandlercanImport 方法查詢此動作。

此方法只用於拖放傳輸。isDrop()false 時調用此方法將導致 IllegalStateException

返回:
使用者放置動作
拋出:
IllegalStateException - 如果此 TransferSupport 不是一個放置操作
另請參見:
setDropAction(int), getDropAction(), isDrop

getSourceDropActions

public int getSourceDropActions()
當此 TransferSupport 表示放置操作時,返回拖動源受支持的放置動作。

源動作表示此傳輸的源所支持的動作集合,並表示為 COPYMOVELINK 的某個按位或組合。當要確定放置操作的適合性或者對顯式地選擇放置動作作決定的時候,可以使用 TransferHandlercanImport 方法查詢此動作。要確定源是否支持指定動作,可以將該動作與源放置動作進行按位加,然後將結果與初始動作進行比較。例如:

boolean copySupported = (COPY & getSourceDropActions()) == COPY;
 

此方法只用於拖放傳輸。isDrop()false 時調用此方法將導致 IllegalStateException

返回:
拖動源受支持的放置動作
拋出:
IllegalStateException - 如果此 TransferSupport 不是一個放置操作
另請參見:
isDrop

getDataFlavors

public DataFlavor[] getDataFlavors()
返回此傳輸的資料 flavor。

返回:
此傳輸的資料 flavor

isDataFlavorSupported

public boolean isDataFlavorSupported(DataFlavor df)
返回是否支持給定的資料 flavor。

參數:
df - 要測試的 DataFlavor
返回:
是否支持給定的 flavor。

getTransferable

public Transferable getTransferable()
返回與此傳輸關聯的 Transferable

註:除非有必要直接獲取 Transferable,否則使用此類別的其他方法之一查詢傳輸。這可能比直接獲取 Transferable 並詢問它執行得更好。

返回:
與此傳輸關聯的 Transferable

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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