開發Eclipse自訂控制項

來源:互聯網
上載者:User

目標讀者必須熟悉Java開發,並且有一定的Eclipse開發經驗。

在Eclipse網站上有一篇相關的文章"Creating Your Own Widgets using SWT",該文介紹了開發自己控制項的很多基本概念、方法,並且通過執行個體進行了介紹,非常好。但是其所用的執行個體比較簡單,還有很多控制項開發中所要涉及到的內容,例如鍵盤、滑鼠事件的處理,捲軸、焦點的處理等等沒有提及。本文通過開發一個自訂的顏色清單控制項的執行個體,全面地介紹了自訂控制項所涉及的技術。同時,讀者也可以對該執行個體進行擴充,實現自己的清單控制項。

SWT中提供的標準清單控制項非常簡單,只能提供字串的選擇。我們經常需要提供一些圖形列表供使用者選擇,這就需要自己開發自訂的清單控制項。顏色挑選清單是我們常用的一種圖形列表,我們就以此為例進行介紹。以下是我們將要開發的顏色列表。

我們在開發自訂控制項時主要考慮以下問題:

1、自訂控制項的繪製:通常我們需要自己對控制項的形狀或圖案進行繪製;

2、控制項對鍵盤事件的響應:當焦點進入控制項,使用者進行鍵盤操作,通過鍵盤對控制項進行控制時,我們需要讓控制項對使用者的操作進行響應。例如在列表中,使用者會通過上下箭頭改變列表的選擇項;

3、控制項對滑鼠事件的響應:當使用者用滑鼠選中控制項,進行操作時,控制項必須作出相應的反應;

4、控制項對焦時間點事件的響應:當介面焦點進入或移出控制項,通常我們需要將控制項繪製成得到或失去焦點的形狀。例如,當焦點進入列表時,一般被選中的清單項目會有虛框表示選中。

5、響應TAB鍵:對於一個可操縱的控制項,使用者可以用TAB鍵將焦點移入或移出。

6、響應捲軸事件:當控制項有捲軸時,我們需要響應使用者對捲軸的操作,完成對控制項的繪製工作。

7、提供事件監聽機制:程式員使用你的控制項時通常需要監聽控制項中發生的一些事件,這樣當事件發生時,他們能夠進行相應處理。

8、提供協助工具功能(Accessibility):協助工具功能是方便殘障人士使用時必須的,標準控制項都會提供相應的支援,我們自訂的控制項也不例外。

9、提供功能介面方便程式員訪問:通常為方便程式員使用時擷取控制項中的資訊或進行設定,我們需要提供一些介面。

首先我們要開發的清單控制項是一個基本控制項,所以我們選擇Canvas作為我們開發的基類。

public class ColorList extends Canvas {
  Vector colors = new Vector(); // 用於儲存我們顏色控制項中的顏色值
  Vector colorNames = new Vector(); // 用於儲存顏色控制項中的顏色名字

  int rowSel = -1; // 用於儲存當前選中的行號
  int oldRowSel = -1; // 用於儲存上一次選中的行號

  int maxX, maxY; // 用於儲存列表的寬度和高度
  int lineHeight; // 用於設定行高

  int cx = 0; // 捲軸滾動後,控制項的圖形相對於控制項可見地區左上方的x座標
  int cy = 0; // 捲軸滾動後,控制項的圖形相對於控制項可見地區左上方的y座標
  }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.