SWT圖形化使用者介面的幾個小技巧

來源:互聯網
上載者:User
  如果想要給Dialog最大最小化按鈕,那麼你可以這樣做,即在New這個Dialog的shell的時候(而不是new這個對話方塊的時候)不使用  其trim style(即SWT.DIALOG_TRIM),而是把它換成SWT.CLOSE|SWT.MIN|SWT.MAX的組合。。  同樣的道理,要想把對話方塊做成非模態的情形,那麼也是在new這個對話方塊的shell的時候,指定  SWT.MODELLESS即可. 5 要想處理CTabFolder中選擇某個CTabItem的事件,因為是單擊(選擇)事件,所以SWT中仍是繼承並實現folder.addSelectionListener()  然後在widgetSelected()函數中,先這樣得到選中的CTabItem:CTabItem selectedItem=(CTabItem)e.item;  這是查API並加上自己的猜測所做出的。

6 讓JFreeChart的映像比較小的方法就是對ChartPanel進行屬性設定:chartPanel.setPreferredSize(new java.awt.Dimension(100,100)); 

7   在SWT中如果想在視窗關閉之前或者的時候做一些事情,需要重載關閉視窗按鈕的函數。首先注意視窗關閉按鈕不是在dialog或者 application window中,而是在這些的shell中的。具體方法是為shell添加addShellListener()方法,具體代碼見下:  shell.addShellListener(new ShellAdapter()         {                public void shellClosed(final ShellEvent e)                {                       //具體幹活代碼                }

        });

8

  在SWT中如果要在另一個線程中使用GUI線程的某個組件的話,必須使用這樣的一種方式:    Display.getDefault().syncExec(new Runnable()               {                      public void run()                      {                             //具體幹活代碼                      }               });    因為SWT中負責線程之間的互動是在Display中進行的。一般來說一個應用程式只有一個display對象,如果這個應用程式可以有多個對話方塊,    那麼對話方塊在構造的時候是使用主application window的shell進行構造的,這個時候,對話方塊的display對象是由getParent().getDisplay()    來獲得的,而不是像application window中那樣之間建立一個新的Display.getDefaultDisplay()來獲得,這樣就保證了整個應用程式中只有

   一個display。

9  如果想在一個按鈕裡讓SWT的對話方塊結束的話,是需要在這個按鈕的響應函數裡寫出shell.dispose()的,因為SWT的事件迴圈過程就是這樣的一個熟悉結構: while(!shell.isDispose()) {        if(!display.readAndDispatch())               {                      display.sleep();               } } 所以讓shell被dispose掉了才能結束這個迴圈

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.