<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    很久很久以前

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      34 隨筆 :: 4 文章 :: 17 評論 :: 0 Trackbacks
    Draw2D學習
    Draw2D is a lightweight system.輕量級系統,指這個繪圖系統全部建立在一個重量級的控件上。對于Draw2D他是建立在SWT的Canvas上的。
    Draw2D的幾個部分
    1.figures
    主要功能:
       1。給一個figure注冊和去注冊監聽器。這個figure會通知在這個figure中的鼠標時間給監聽器。
       2。結構化的事件。比如figure層次的結構化變化,figure的移動和大小調整。
       3。當光標從figure上移過時,光標的改變和顯示。
       4。在figure的層次中操作figure的位置,包括添加移除訪問子節點,或者訪問他們的父節點。
       5。存取:figure的layout manager;figure的size和location;還有tooltips。
       6。設置獲得焦點。
       7。設置figure的透明度和可視性。
       8。進行坐標變換,figure的交疊和碰撞檢測。
       9。繪制。
       10。確認。
    figure有很多subclass,提供了很多附加的功能。比如
      1。shape,它包含了非矩形的figure,可以知道如何填充,并提供了對邊界的寬和類型的配置,并提供了異或的繪制方法。比如有橢圓,幾何線,多邊形,矩形,圓角矩形和三角形。
      2。widget,draw2d包含的figure允許你創建輕量級(lightweight)的部件(widget),從而在你的draw2d應用程序中需要輸入控制時提供支持。這包含大量的按鈕,選擇框和文本圖形,標簽。
      3。layer and pane,這些使用來作為子類的容器,他們提供了縮放,滾動和講figure放置在不同layer上的能力。
    圖形上下文(the graphics context)
      當一個figuer需要被繪制的時候輕量系統會調用fiuger的一個paint方法。每一個figure都會得到一個graphical context,他是Graphics的一個實例。作為參數傳給paint方法。這個繪圖上下文支持圖形操作包括繪制,填充圖形繪制它的文字。它也提供了圖形的狀態,這些可以影響圖形操作。這些狀態包括當前字體,背景前景顏色等等。
    2.LightweightSystem
    LightweightSystem時draw2d的核心。它提供了SWT Canvas控件和在其上建立的draw2d系統之間的映射。包含三個方面:
      1。the root figure.這個是LightweightSystem$RootFigure類的一個實例。這個是用戶的root figure的父類。它繼承了一些基于SWT Canvas的圖形環境,比如字體,前景背景顏色。
      2。the event dispatcher:SWTEventDispatcher類將SWT事件傳給Draw2D的root figure中相應的部件。
      3。the update manager.它負責繪制并更新Draw2dfigure。當一個繪制請求從下層的SWTcanvas傳來時,LightWeightSystem將會調用updatemanager中的performUpdate方法。update manager將會維護一個非法的或者需要重畫的figure的worklist。upate manager會設法盡量連續的它的work list,這樣可以盡量的提高效率。默認的update manager:DaferredUpdateManager允許通過再Display上的用戶線程來使工作隊列異步的更新。
    對于一個figure的生存周期中,繪制(painting)和確認(validating)是主要的處理過程。draw2d會要求一個figure,調用繪制方法來遞歸的繪制自己。paint()方法會調用多個繪制方法:
      1。paintFigure():figure遞歸的繪制自己
      2。paintclientarea(): figure遞歸的繪制子圖
      3。paintborder():figure繪制邊界。
     當一個figure的size或者location需要重新計算時,將會調用確認。
      1。validate():要求figure的layout manager去重新布局它的子圖
      2。revalidate():調用invalidate;添加一個圖形和它的祖先去更新update manager的invalid list。
    posted on 2006-02-23 22:40 Long Long Ago 閱讀(1074) 評論(0)  編輯  收藏 所屬分類: GEF 、Eclipse
    主站蜘蛛池模板: 四色在线精品免费观看| 亚洲av无码有乱码在线观看| 国产在线观看免费av站| 亚洲国产精品嫩草影院久久| 久久久久国产精品免费看| 亚洲自偷自偷偷色无码中文| 久久久亚洲欧洲日产国码aⅴ| 亚洲免费福利视频| 一级做受视频免费是看美女 | 亚洲日韩aⅴ在线视频| 一级**爱片免费视频| 国产亚洲精aa成人网站| 久久毛片免费看一区二区三区| 国产精品久久久久久久久久免费 | 午夜视频在线在免费| 亚洲精品天堂成人片AV在线播放| 午夜色a大片在线观看免费| 亚洲AV无码一区二区乱子仑| www亚洲精品少妇裸乳一区二区| jizz在线免费播放| 免费国产黄线在线观看| 亚洲欧美第一成人网站7777| 国产一级高清视频免费看| 一区在线免费观看| 国产亚洲人成网站观看| 曰批全过程免费视频播放网站| 亚洲日韩激情无码一区| 中文字幕在线观看免费视频| 国产亚洲综合色就色| www.免费在线观看| 国产精品亚洲av色欲三区| 亚洲色精品aⅴ一区区三区| 精品女同一区二区三区免费站| 亚洲国产美女精品久久久| 亚洲伊人久久综合中文成人网| 美国毛片亚洲社区在线观看| 亚洲欧洲∨国产一区二区三区 | 亚洲AV网一区二区三区| 人人狠狠综合久久亚洲婷婷| 一二三四视频在线观看中文版免费 | 亚洲精品国产第1页|