JavaTM 2 Platform
Standard Ed. 6

java.awt.dnd
介面 DropTargetListener

所有父級介面:
EventListener
所有已知實作類別:
DropTarget, DropTargetAdapter

public interface DropTargetListener
extends EventListener

DropTargetListener 介面是 DropTarget 類別所使用的回調介面,用於提供所涉及的 DropTarget 的 DnD 操作的通知。在整個 Drag 和 Drop 操作中,可以實作此介面的方法,向使用者提供 "drag under" 的可視化反饋。

通過實作該介面,並使用 DropTarget 註冊該介面,可以創建一個 listener 物件。當 drag 進入、移上或退出該 DropTarget 的 drop 位置的可操作部分時,當 drop 操作改變時,以及當 drop 操作發生時,調用 listener 物件的相關方法,並將 DropTargetEvent 傳遞到該方法。

DropTarget 的 drop 位置的可操作部分是關聯 Component 幾何結構的一部分,該部分不會被重疊的頂層視窗或另一 Z-order(順序)更高的並具有關聯的活動 DropTargetComponent 遮掩。

在 drag 過程中,通過對 DropTargetDragEvent 實例(該實例被傳遞給 listener 的方法)調用 getTransferable(),可以檢索與當前 drag 操作相關的資料。

注意,DropTargetDragEvent 實例上的 getTransferable() 應該只在各自 listener 的方法中調用,並且應該在該方法返回前從返回的 Transferable 檢索所有必需的資料。

從以下版本開始:
1.2

方法摘要
 void dragEnter(DropTargetDragEvent dtde)
          正在進行 drag 操作時調用,此時鼠標指針進入 DropTarget(使用此 listener 註冊)的 drop 位置的可操作部分。
 void dragExit(DropTargetEvent dte)
          正在進行 drag 操作時調用,此時鼠標指針已退出 DropTarget(使用此 listener 註冊)的 drop 位置的可操作部分。
 void dragOver(DropTargetDragEvent dtde)
          正在進行 drag 操作時調用,此時鼠標指針仍然處於 DropTarget(使用此 listener 註冊)的 drop 位置的可操作部分。
 void drop(DropTargetDropEvent dtde)
          在 drag 操作已終止時調用,此時 drop 處於 DropTarget(使用此 listener 註冊)的 drop 位置的可操作部分。
 void dropActionChanged(DropTargetDragEvent dtde)
          在使用者已經修改了當前 drop 操作後調用。
 

方法詳細資訊

dragEnter

void dragEnter(DropTargetDragEvent dtde)
正在進行 drag 操作時調用,此時鼠標指針進入 DropTarget(使用此 listener 註冊)的 drop 位置的可操作部分。

參數:
dtde - DropTargetDragEvent

dragOver

void dragOver(DropTargetDragEvent dtde)
正在進行 drag 操作時調用,此時鼠標指針仍然處於 DropTarget(使用此 listener 註冊)的 drop 位置的可操作部分。

參數:
dtde - DropTargetDragEvent

dropActionChanged

void dropActionChanged(DropTargetDragEvent dtde)
在使用者已經修改了當前 drop 操作後調用。

參數:
dtde - DropTargetDragEvent

dragExit

void dragExit(DropTargetEvent dte)
正在進行 drag 操作時調用,此時鼠標指針已退出 DropTarget(使用此 listener 註冊)的 drop 位置的可操作部分。

參數:
dte - DropTargetEvent

drop

void drop(DropTargetDropEvent dtde)
在 drag 操作已終止時調用,此時 drop 處於 DropTarget(使用此 listener 註冊)的 drop 位置的可操作部分。

此方法負責保證與操作相關的資料傳輸。DropTargetDropEvent 提供獲得 Transferable 物件的手段,該物件表示要轉換的資料物件。

利用此方法,DropTargetListener 將通過帶 DropTargetDropEvent 參數的 acceptDrop(int dropAction) 或 rejectDrop() 方法來接受或拒絕 drop 操作。

在 acceptDrop() 之後(而不是之前),可以調用 DropTargetDropEvent 的 getTransferable() 方法,還可以通過返回的 Transferable 的 getTransferData() 方法執行資料傳輸。

完成 drop 之後,需要此方法實作指明 drop 成功還是失敗,這通過傳遞合適的 booleanDropTargetDropEvent 的 dropComplete(boolean success) 方法來完成。

註:應該在調用 DropTargetDropEvent 的 dropComplete(boolean success) 方法之前完成資料傳輸。在此之後,調用由 DropTargetDropEvent.getTransferable() 返回的 Transferable 的 getTransferData() 方法,確保只有在資料傳輸限於本地時才會成功;也就是說,只有 DropTargetDropEvent.isLocalTransfer() 返回 true 時才會成功。否則,調用的行為是與實作相關的。

參數:
dtde - DropTargetDropEvent

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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