SWT與Linux安裝包


關於SWT

 

  1. SWT首先要在Eclipse中添加SWT的安裝包:Windowsbuilder Pro。下載路徑:http://www.eclipse.org/windowbuilder/download.php
  2. 通過Help -> Install New Software...來進行安裝。
  3. 下面就是添加項目,要添加JFace/SWT項目,然后添加Shell類,這樣才會在Shell的Design頁面中加載合適的Platte,最重要的就是Controls Tab,里面的控件是即拖即用的。
  4. swt打包成可運行jar
  5. Windows平台下面需要添加org.eclipse.win32.jar(dll就是從這個文件夾下面獲取)
  6. Linux下面也需要安裝添加swt.jar,來自於swt-gtk包。但是注意不要部署win32.jar包
  7. 運行需要通過腳本文件(.sh文件)引導。故需要分配可執行權限(或者使用sh/source指令)。在Linux下面需要為sh文件賦執行權限(chmod +x)
  8. Eclipse創建的JFace/SWT項目會引用很多無用jar包,因為我們關注的是swt,所以默認引用的equio,ibm-uc等plugin的jar包統統刪掉,只是引用swt的jar包即可;
  9. SWT里面的多線程,或者對於某些長執行想要在執行過程中改變控件值,需要使用Display.getDefault().asyncExec(new Runnable() {...}的方式來進行異步實現;比如要在當前窗體彈出一個頁面,需要使用模式。
  10. 設置text自動換行,首先Text本身要制定是可以WRAP的,然后需要創建一個GridData,然后指定其WidthHint,之后,就可以了。
            txtTodo = new Text(this, SWT.BORDER | SWT.V_SCROLL | SWT.MULTI | SWT.WRAP);
    
            GridData gd_cmdIntro = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1);
            gd_cmdIntro.widthHint = 10; // 必須得設置寬度,否則自動換行不好使
            txtTodo.setLayoutData(gd_cmdIntro);
  11. SWT的換行,可以添加keyListener事件,判斷keyCode值為13即可。
            txtTodo = new Text(this, SWT.BORDER | SWT.V_SCROLL | SWT.MULTI | SWT.WRAP);
            txtTodo.addKeyListener(new KeyAdapter() {
                @Override
                public void keyReleased(KeyEvent e) {
                    if (e.keyCode == 13) {
                        txtTodo.setSize(txtTodo.getSize().x, txtTodo.getSize().y + 10);
                    }
                }
            });
    

關於安裝包的設計

 

Java能做的事情,盡量Java做,靠譜,而且具有跨平台性,比如拷貝文件

Java不支持chmod的通配符,這個只能在腳本中來做

注意Windows下面寫的sh文件很可能無法在Linux下面執行,因為windows會在記事本中莫名添加一些符號;所以最好在Linux下面編寫,再回流到Windows上面

有一次和nohup…&相遇,為了讓應用啟動不隨着腳本結束而結束,使用到了它。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM