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

  • 相关阅读:
    依赖倒置原则(Dependency Inversion Principle)
    里氏替换原则(Liskov Substitution Principle)
    vue.js如何在标签属性中插入变量参数
    SpringBoot解决ajax跨域问题
    WebBrowser(IE) 与 JS 相互调用
    WebBrowser引用IE版本问题,更改使用高版本IE
    win10下端口被占用解决办法
    vim撤销undo与反撤销redo
    centos 安装sbt
    idea中使用scala运行spark出现Exception in thread "main" java.lang.NoClassDefFoundError: scala/collection/GenTraversableOnce$class
  • 原文地址:https://www.cnblogs.com/xiashiwendao/p/6034060.html
Copyright © 2020-2023  润新知