posts - 18, comments - 15, trackbacks - 0, articles - 0

          SWT中的拖放支持 - 拖放原理概述

          SWT中有關拖放操作的類都在org.eclipse.swt.dnd包中。該包中主要的接口和類如下所示:

          類名                                    功 能 描 述

          Clipboard                          剪貼板類,可以實現對剪貼板的操作

          DND                                類似于SWT類,封裝了拖放時所用的一些常量

          DragSource                       拖放源類,可將一個控件定義為拖放源

          DropTarget                       拖放目標類,可將一個空間定義為拖放目標

          DragSourceListen和          拖放源控件時所觸發的事件,觸發事件的具體信息通過DragSourceEvent傳遞過來
          DragSourceAdapter

          DropSourceListen和          拖放目標控件時所觸發的事件,觸發事件的具體信息通過DragTargetEvent傳遞過來
          DropSourceAdapter

          Transfer                             數據傳輸類,用于將Java數據轉換為系統本地的數據,反之亦然。通常用于拖
                                                   放操作和剪貼板操作。通常使用其子類 TextTransfer類、FileTransfer類
                                                   和RTFTransfer類等

          看似簡單的拖放操作,其實過程相當復雜,現在就將一個拖放過程分解開來,分析一下拖放的過程。
          1、要有一個拖放源,也就是”拖的是什么“。簡單的理解就是可以進行拖放的控件。只有光標進入到可拖放
          控件的區域,才可以開始拖放操作。SWT中使用DragSource類來定義一個拖放源對象。
          2、還要有一個拖放目標,也就是”放到哪里“。簡單的理解就是可接受源的目標控件。只有當光標進入到目標控件的區域時,才可以進行拖放的操作。SWT中使用DragTarget類來定義一個拖放目標對象。
          3、要在拖和放操作之間搭建一個橋梁,將拖的數據放到目標對象中。

          拖放操作無非是將源的數據放置到目標對象中,SWT中的處理是在拖的過程中將Java的數據轉化為本地保存的全局變量數據,然后在放的過程中,再從本地保存的全局變量中將數據取出。SWT中使用Transfer類來定義一個轉化數據的過程。

          要想理解拖放的全過程,關鍵是要理解3個概念:
          拖放源(DragSource)、傳輸數據(Transfer)、拖放目標(DragTarget)。

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 沅江市| 滨海县| 安丘市| 兴仁县| 黎川县| 西青区| 台南县| 淮安市| 乌鲁木齐县| 临江市| 琼结县| 海门市| 深泽县| 怀仁县| 彭阳县| 新河县| 绥德县| 靖州| 台南县| 奎屯市| 和平县| 金乡县| 洮南市| 安顺市| 屏山县| 泊头市| 英山县| 利辛县| 西吉县| 高淳县| 雷波县| 宁明县| 大名县| 丰都县| 吐鲁番市| 滨州市| 盱眙县| 虹口区| 南靖县| 图们市| 黑龙江省|