java.awt.dnd

描述,典型的操作,DragGestureListener,

描述

Drag 和 Drop 是一種直接操作操作,在許多圖形用戶界面系統中都會遇到它,它提供了一種機制,能夠在兩個與 GUI 中顯示元素邏輯相關的實體之間傳輸信息。Drag 和 Drop 通常由使用適當輸入設備的用戶的實際操作所驅動,它既提供在對 GUI 顯示元素導航期間啟用連續反饋(關於傳輸給用戶的任何後續數據的可能結果)的機制,又提供支持任何後續數據協商和傳輸的設施。
此包定義了在 Java 中執行 Drag 和 Drop 操作所需的類和接口。它定義了用於拖動源和放置目標的類,以及用於傳輸正被拖動的數據的事件。此包還在整個 Drag 和 Drop 操作期間提供一種向用戶提供可視反饋的方法。

典型的操作

典型的 Drag 和 Drop 操作可以分解為以下幾種狀態(未完全按順序):
存在與 GUI 中某個顯示元素 (Component) 相關的 DragSource,以啟動對某個潛在 Transferable 數據的 Drag 和 Drop 操作。
進入/離開一個或多個與 GUI 中顯示元素(組件)相關的 DropTarget,很可能要使用 Transferable 數據類型。
為了跟蹤和識別任何由用戶在 Component 上啟動的 Drag 操作,可以從 DragSource 獲取 DragGestureRecognizer,並讓它與一個 Component 相關聯。
用戶在 Component 上發起 Drag 操作,已註冊的 DragGestureRecognizer 檢測到該操作,並通知 DragGestureListener。
註:儘管此 API 一直認為拖放操作是由用戶的實際操作激發的,但這並不排除由適當的 DragSource 實現發出的以編程方式驅動的 DnD 操作。此包包含用於識別滑鼠設備操作的抽象類 MouseDragGestureRecognizer。平台可以提供其他抽象子類,以支持其他輸入設備或特定的 Component 類語義。

DragGestureListener

DragGestureListener 使得 DragSource 按用戶的行為啟動 Drag 和 Drop 操作,或者激活 GUI 游標,或呈現此操作主題項的 Image。
當用戶對 GUI 中帶相關 DropTarget 的 Component 進行定位時,根據受支持的操作和所涉及的數據類型,DragSource 接收通知以提供 "Drag Over" 反饋效果,而 "DropTarget" 接收通知以提供 "Drag Under" 反饋效果。
該操作本身可以在整個 GUI 層次結構中移動邏輯游標,交叉 GUI 組件的幾何圖形,並可能導致邏輯“Drag”游標進入、跨越、隨後離開 Component 及相關的 DropTarget。
DragSource 對象向用戶顯示“Drag Over”反饋,一般情況下是通過激活與邏輯游標相關的 GUI Cursor 來實現的。
DropTarget 對象向用戶顯示“Drag Under”反饋,一般情況下是通過在 GUI Cursor 下將動畫呈現到相關 GUI Component 來實現的。
反饋結果的確認、數據轉換的最終成敗(只發生一種)是按如下方式參數化的:
由用戶選擇的傳輸“操作”,並受 DragSource 和 DropTarget 支持:複製、移動或引用(連結)。
通過 DragSource 所提供的數據類型集合和 DropTarget 可理解的數據類型集合的交集來實現。
當用戶終止 drag 操作時,一般會導致 Drop 操作成功,DragSource 和 DropTarget 都會接收到通知,該通知包含與 DragSource 相關的信息,並且通過 Transferable 對象導致信息的流通和信息類型的轉換。
從以下版本開始:
1.2

相關詞條

熱門詞條

聯絡我們