关于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…&相遇,为了让应用启动不随着脚本结束而结束,使用到了它。

SWT与Linux安装包的更多相关文章

  1. Linux安装包

    关于SWT SWT首先要在Eclipse中添加SWT的安装包:Windowsbuilder Pro.下载路径:http://www.eclipse.org/windowbuilder/download ...

  2. linux安装包地址备忘

    64位系统安装包: http://mirrors.163.com/centos/5/os/x86_64/CentOS/ 32位系统安装包: http://mirrors.163.com/centos/ ...

  3. Linux安装包生成工具:checkinstall、makeself

    关键词:checkinstall.dpkg.deb/rpm.makeself等等. checkinstall记录make install安装的文件,生成相应的(Slackware/RPM/Debian ...

  4. linux安装包制作

    1. 常见安装包 打包或压缩文件tar,zip,gz等,一般解压后即可 管理工具的deb,rpm等.这类安装文件可以通过第三方的命令安装 (apt和yum) .bin类,其实就是把sh和zip打包为b ...

  5. linux安装包资源库

    最近发现了一个很不错的linux的rpm资源库,可以在里面找到rpm安装过程中缺失的资源! 网址:http://pkgs.org/

  6. nslookup、dig命令Linux安装包

    linux下提供nslookup,dig命令的软件就是 bind-utils yum install bind-utils -y

  7. 查看linux安装包的版本信息-TX2

    前言 新到手一块TX2板子,想要检查系统是否安装某软件及其版本. 操作命令 Cuda8.:nvcc --version Opencv:pkg-config --modversion opencv G+ ...

  8. Apt下载安装包时Hash校验和不符

    近期我的电脑在使用apt-get或aptitude下载Linux安装包时总是出现如下图所示的Hash校验和不符的问题.以至于下载过程被频繁中断,不得不反复运行apt-get或者在aptitude中按g ...

  9. 在Linux上编译dotnet cli的源代码生成.NET Core SDK的安装包

    .NET 的开源,有了更多的DIY乐趣.这篇博文记录一下在新安装的 Linux Ubuntu 14.04 上通过自己动手编译 dotnet cli 的源代码生成 .net core sdk 的 deb ...

随机推荐

  1. token的生成和应用

    token的生成和应用 接口特点汇总: 1.因为是非开放性的,所以所有的接口都是封闭的,只对公司内部的产品有效: 2.因为是非开放性的,所以OAuth那套协议是行不通的,因为没有中间用户的授权过程: ...

  2. Linux用户和用户组管理 用户组管理命令

    添加用户组命令:groupadd 命令格式: [root@localhost ~]# groupadd [选项] 组名 选项: 选项 选项说明 -g GID 指定组ID: 修改用户组命令:groupm ...

  3. 通过调节坐标进行jfree图的放大缩小

    http://blog.csdn.net/lt1983lt/article/details/5665085 import Java.awt.BorderLayout;import java.awt.C ...

  4. GPU的工作原理

    转:https://blog.csdn.net/p23onzq/article/details/79609629 在GPU出现以前,显卡和CPU的关系有点像“主仆”,简单地说这时的显卡就是画笔,根据各 ...

  5. 机器学习相关知识整理系列之二:Bagging及随机森林

    1. Bagging的策略 从样本集中重采样(有放回)选出\(n\)个样本,定义子样本集为\(D\): 基于子样本集\(D\),所有属性上建立分类器,(ID3,C4.5,CART,SVM等): 重复以 ...

  6. java web数据库连接封装-simple

    package cn.cslg.bm.web.util; import java.sql.Connection; import java.sql.DriverManager; import org.a ...

  7. INSPIRED启示录 读书笔记 - 第19章 用户体验设计与实现

    先定义用户体验再动手开发 在软件开发过程中,有很多工作可以同时进行.比如,需求调研和产品设计(用户体验设计).开发与测试 尽管如此,用户体验设计和软件开发就不能同时进行,原因有五点 1.与软件开发团队 ...

  8. thinkphp URL 模式

    兼容ThinkPHP三种url模式的nginx rewrite location / { root /var/www; index index.html index.htm index.php; if ...

  9. Apache Phoenix的子查询

    Phoenix现在支持在WHERE 和FROM 中使用子查询.子查询可以被指定在很多地方,比如 IN/NOT IN, EXISTS/NOTEXISTS等. Subqueries with INor N ...

  10. Codeforces Round #425 (Div. 2) D 树链剖分 + 树状数组维护区间

    一看就知道 可以LCA判断做 也可以树链剖分拿头暴力 然而快速读入和线段树维护区间会T70 于是只能LCA? 线段树的常数不小 于是需要另外一种办法来进行区间加减和查询区间和 就是使用树状数组 这个题 ...