Ray Studio

          博學之,審問之,慎思之,明辨之,篤行之
          posts - 2, comments - 1, trackbacks - 0, articles - 2

          SWT和SWT/JFace的GUI編程對比(一)

          Posted on 2005-12-31 00:44 蓉之戀 閱讀(316) 評論(0)  編輯  收藏 所屬分類: SWT/JFace

          本文主要對于SWTSWT/JFaceGUI編程的對比,將介紹兩個SWT重要的類:DisplayShell ;JFaceApplicationWindow類,兩者在程序設計的時候對基層系統窗口類的調用和實現的不同之處和優缺點的對比。本文主要參考了《SWT JFace In Action》。

          一,首先我們還是從一個例子出發吧~

          HelloSWT.java

          package net.kilu.jopen.helloswt;
          import org.eclipse.swt.*;
          import org.eclipse.swt.widgets.*;
          public class HelloSWT
          {
          public static void main (String [] args)
          {

          // a, 配置和初始化
          Display display = new Display();
          Shell shell = new Shell(display);

          //b, 添加widgetsshell
          Text helloText = new Text(shell, SWT.CENTER);
          helloText.setText("Hello SWT!");
          helloText.pack();

          //c, GUI操作
          shell.pack();
          shell.open();
          while (!shell.isDisposed())
          {
          if (!display.readAndDispatch())
          display.sleep();
          }
          display.dispose();
          }
          }

          以上例子主要分成3部分:

          a, 首先創建了DisplayShell類的兩個實例,使得GUI操作能訪問最底層平臺的資源并創建主要的窗口察看組件。

          b, 下一步添加Text文本組件到Shell中,這些文本是根據構建GUI的函數模塊來添加配置的。Widgets和成組的widgets是以shell的子類添加的,也可以添加相應的監聽器和事件都是根據需要的,在這里pack()方法是告訴ShellText組件能夠使用可能大的空間。

          c, 最后部分就是描述了GUI的操作了,從這點出發,所以的程序代碼除了初始化變量外什么都不做,但是當Shellopen()方法被調用時,程序的主窗口和它的子類就顯示出來了,只要Shell一直是被調用的,Display的實例使用readAndDispatch()方法保持循環執行并等待平臺的事件的響應。當被用戶使用關閉事件時,相關的Display對象(像ShellShell的子類等)就會跟系統底層平臺斷開。

          SWT的類之間的通信和構建用戶界面:

          class communicationg structure of the SWT User Interface

           


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


          網站導航:
           
          主站蜘蛛池模板: 紫云| 革吉县| 大英县| 沭阳县| 海盐县| 鸡泽县| 娄底市| 宜兰市| 周口市| 石林| 沈阳市| 基隆市| 五河县| 泸水县| 思茅市| 徐闻县| 渝中区| 鸡泽县| 吉隆县| 兴文县| 耒阳市| 商丘市| 四川省| 南通市| 太保市| 子长县| 阳东县| 通河县| 墨玉县| 雷州市| 灵台县| 夏邑县| 扶风县| 望城县| 太仆寺旗| 余庆县| 榆中县| 西城区| 西平县| 全州县| 永善县|