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

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

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

    方槍槍的java世界

    不要因為風雨飄落就停止了你的腳步,真正的得失就在你的心中。 做喜歡做的事,不輕言放棄!

    SWT/JFace入門指南之初步體驗widget

    從Widget和Control開始

      Widget是Control的父類,而Control是我們使用的大多數部件的父類。

      在org.eclipse.swt.widgets中定義了眾多的widget,甚至我們前面介紹的Shell也被當成widget的一種。

      因為可用的widget如此之多,所以我大概沒有辦法全部一一介紹。在這一節中,我會介紹幾種常用的widget。相信善于觸類旁通的你通過這些極為簡略的介紹應該可以開始使用各種widget,在使用中不斷完善自己的認識。

      首先我們來介紹Widget。它是一個抽象類,也是所有widget的父類。通過介紹這個類,我們可以得出這所有widget的一些共有特性。

      Widget的方法中dispose()方法我們在以前曾經見到過,調用這個方法時候,所謂的接收者(receiver,譬如我們這樣寫:awidget.dispose(),那么awidget就是接收者,而這句話所處的對象稱為調用者)和接收者中所包含的其他widget會釋放它們所占用底層操作系統的資源。這也就是說你不必顯式地為程序中創建的每個widget進行dispose()調用,而只需要確保最外層的widget(比如Display)進行了dispose()就可以了。

      另外還可以通過isDisposed()判斷是否該widget(接收者)已經進行了dispose。

      Widget中的getStyle()方法得到widget的風格,而getDisplay()得到所處的Display對象。

      此外Widget中還有兩個重要方法getData()和setData(),這兩個方法允許我們為一個widget附加其他的信息。特別是在你需要跨模塊傳遞widget的時候,這個功能顯得非常有用。比如如果一個文本框中顯示了一段文章中的某句話,如果我們同時希望把這整篇文章的題目和作者附加上的話可以這樣寫:

      atext.setData("title","I Have A Dream");
      atext.setData("author","Martin Luther King");

      在程序的其他部分可以用atext.getData(“title”)得到這篇文章的題目,或者用atext.getData("author")得到作者。

      在前面我們提到過,Control是今后我們所使用大部分widget的父類。

      創建部件

      和創建其他java object一樣,我們通過使用new操作符創建部件的實例。有一點比較特殊的可能你需要使用帶參數的構造函數進行new操作。類似下面的程序:

      Text text=new Text(shell,SWT.CENTER);

      這種方法適用于幾乎所有的widget,其中第一個參數是父widget,也就是指明了該widget需要被放置道另外哪一個widget之中,而第二個參數是這個widget的風格。

      大小和位置

      僅僅創建一個部件并不足以讓你看到它,因為一個部件初始的長和寬都是0。你還需要設定它的大小。你可以用setSize()或者setBounds()方法手動設定部件的大小,也可以讓系統自動調整部件的大小到一個合適的值,這個值也被成為首選尺寸(preferred size)。

      可以通過調用pack()方法讓系統調整控件大小。如果你希望系統自動調整,那么你需要首先設定控件需要表達的內容。舉個例子來說,如果你的部件是一個文本框或者標簽,你應該首先設定它所要顯示的文本,這樣系統可以通過文本的長度計算。

      對于部件的位置,同樣可以使用setLocation()或者setBounds()進行設定。

      這里值得一提的是所謂的bounds,其實bounds可以看成是大小和尺寸的綜合。比如setBounds(int x, int y,int width,int height)的參數中,x和y描述的是位置信息,而width和height描述了大小。

      隱藏與失效

      通過部件的setVisible方法可以控制部件進行隱藏或是顯示。通過setEnabled方法可以控制部件是否有效。一個無效的部件不會對用戶的任何動作作出響應。這兩個方法的參數都是布爾型的。

      提示文本

      可以通過setToolTipText()方法設定部件的提示文本。

      幾種常用的部件

      Label

      標簽用來顯示靜態的文本或者圖像。關于圖像和色彩我會在后面的部分進行介紹。

      標簽可以使用SWT.CENTER, SWT.LEFT, SWT.RIGHT中的一種指明文本的對齊方式(居中對齊,左對齊,右對齊)。

      你也可以通過設置標簽屬性為SWT. SEPARATOR 使標簽成為一條分隔符。

      Text就是最簡單的文本框,與標簽一樣,我們可以通過設定它的風格來表示它的對齊方式(SWT.CENTER,SWT.LEFT,SWT.RIGHT),另外還有其他一些用于文本支持的方法,比如insert(),paster(),copy(),setSelection(),selectAll()等,這些方法在后面介紹swt事件模式會進行更詳細的介紹。

      Button

      在swt中,Button并不僅僅是按鈕。構造時候定義的風格不同,所體現出的外觀也不一樣。

      如果風格定義成SWT.PUSH,它就是一個普通的按鈕。

      如果定義為SWT.TOGGLE,它在被按下以后會保持按下的形狀(而不會彈起來),直到鼠標再次在上面按一下才會回復彈起的形狀。

      如果風格定義為SWT.ARROW,它是一個帶箭頭的按鈕,箭頭的指向可以選擇SWT.LEFT,SWT.RIGHT,SWT.UP,SWT.DOWN中的一個。

      如果定義為SWT.CHECK,它是一個復選框。

      如果定義為SWT.RADIO,它是一個單選框。
      

    posted on 2008-04-05 23:06 做強大的自己 閱讀(201) 評論(0)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 久久国产精品成人免费| 无遮挡呻吟娇喘视频免费播放| 久久精品视频免费| 亚洲AV人人澡人人爽人人夜夜| 三级黄色在线免费观看| 亚洲国产精华液网站w| 免费91最新地址永久入口 | fc2免费人成在线视频| 亚洲午夜爱爱香蕉片| 99久久婷婷免费国产综合精品| 亚洲熟妇中文字幕五十中出| 免费久久人人爽人人爽av| 亚洲AV日韩AV永久无码绿巨人| 99视频免费播放| 亚洲av永久无码精品三区在线4| 亚洲午夜无码AV毛片久久| h视频在线免费观看| 亚洲Av永久无码精品三区在线| 99久久久国产精品免费蜜臀| 亚洲乱码无限2021芒果| 性生大片视频免费观看一级 | 免费观看理论片毛片| 国产亚洲美女精品久久| 国产精品亚洲产品一区二区三区 | 日韩亚洲国产综合久久久| jizz免费一区二区三区| 亚洲AV人人澡人人爽人人夜夜| 手机看黄av免费网址| 国产午夜亚洲精品不卡| 久久精品国产亚洲沈樵| 无码一区二区三区AV免费| 成人免费观看男女羞羞视频| 亚洲狠狠久久综合一区77777| 国产成人免费高清激情视频| 一级毛片免费播放视频| 亚洲综合久久综合激情久久| 在线观看免费国产视频| 日本免费电影一区二区| 精品国产亚洲AV麻豆| 亚洲人成电影福利在线播放| 日韩电影免费在线观看视频|