关于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, , );
    gd_cmdIntro.widthHint = ; // 必须得设置宽度,否则自动换行不好使
    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…&相遇,为了让应用启动不随着脚本结束而结束,使用到了它。

最新文章

  1. QRCode
  2. iOS 阶段学习第十天笔记(字符串操作)
  3. Wordpress去除管理员工具条
  4. [dpdk] 读官方文档(2)
  5. Python源代码目录组织结构
  6. iOS开发--轮播图
  7. HDU 4864 (2014 Multi-University Training Contest 1 )
  8. 用scikit-learn实现朴素贝叶斯分类器 转
  9. 设计模式(九):Composite组合模式 -- 结构型模式
  10. SQLite header and source version mismatch 解决方案
  11. [Jobdu] 题目1385:重建二叉树
  12. 点击Robot Framework的桌面快捷图标后,没有反应(没有打开应用程序)
  13. 长沙JavaEE培训机构哪家比较靠谱?Java培训的职业前景
  14. python基础—字典的使用{}_多级字典嵌套
  15. Spring EnableWebMvc vs WebMvcConfigurationSupport
  16. js-循环中判断两次点击是否是同一元素
  17. PDO连接数据库-Xmodel
  18. 项目冲刺 Sixth
  19. PHP黑魔法(该篇文章转自:http://www.91ri.org/12634.html 目的是作为自己的笔记方便查找)
  20. 补充appium -api

热门文章

  1. python日志操作logging
  2. 主攻ASP.NET.4.5.1 MVC5.0之重生:系统角色与权限(二)
  3. Java zip 压缩 文件夹删除,移动,重命名,复制
  4. jQuery带缩略图焦点图插件
  5. Python 元组Tuple概念和操作
  6. MySQL数据库的安装以及配置过程
  7. bzoj 1101 zap 莫比乌斯
  8. iso不支持document事件
  9. eclipse build path 以及 clean(转)
  10. list!=null跟list.isEmpty()有什么区别?