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

           


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


          網站導航:
           
          主站蜘蛛池模板: 青龙| 长垣县| 普宁市| 孙吴县| 南丹县| 阳曲县| 凤冈县| 梅州市| 敖汉旗| 黎川县| 永昌县| 桂平市| 庆城县| 景谷| 亳州市| 南充市| 五华县| 广南县| 米脂县| 报价| 离岛区| 巩留县| 达孜县| 卢龙县| 霸州市| 巧家县| 遵义县| 尉氏县| 义乌市| 闻喜县| 榆中县| 吉安市| 大兴区| 阿勒泰市| 黄龙县| 新营市| 宁德市| 麻栗坡县| 子洲县| 曲水县| 武功县|