`
文章列表
本节开始大多都是概念知识,如果要api的demo请自行上github上获取。   所谓的SWT四个模块,其实只是我为了分析和讲解swt而自己分的概念,在SWT的文档中,没有这样的说法,其主要目的是为了方便概念的引申,去更加细腻的去 ...
  和一般的入门程序一样,我们先写一个简单的swt程序,及分析里面的代码。     public class Demo1 { public static void main(String[] args) { new Demo1(); } public Demo1() { // 新建一个display // 相当于创建了一个swt的运行环境 Display display = Display.getDefault(); // 新建一个窗体,窗体就是一个面板,带有标题 ...
==========================前言  start============================== 由于工作原因,公司需要组织对技术人员进行SWT这方面的培训。但是我的思路并不是只讲API,感觉没什么意义,除了比较难处理的bug和扩展,网上随便都可以找到。所以我的思路是,是用我自己对这种技术的理解,和使用的经验,作为培训的主要内容,同时公司也并不允许有太多的时间让新人在培训上,所以,在内容上,更多的也只能讲解思路,而不能注重细节,更加不用提控件的使用,但是我会在github上将控件的demo代码逐一补充,有需要的同学请标个星,将不断更新DEMO。技术讨论:5 ...
两年没用过swt做开发了,现在看回来两年前的代码写法,确实有些惨不忍睹的地方,利用空余的时间小修小补了一下,但是项目中大体的写法设计还是有些问题的,不过本次重点只在于简化开发配置,本次用了注解的方式去处理配置,感觉比之前的字符串的方式,要方便许多。 新增注解说明类: @Retention(RetentionPolicy.RUNTIME) // 注解会在class字节码文件中存在,在运行时可以通过反射获取到 @Target({ElementType.FIELD,ElementType.METHOD})//定义注解的作用目标**作用范围字段、枚举的常量/方法 @Documente ...
闲来无事,看下一下项目上,大部分的http请求类,发现。。都是一个方法,最后得到一个String,一般的方法都是,getStringForHttp(url),getJsonForHttp。那么在这样的方法上,我想实现一个getByteForHttp的话,就只能重新复制一份代码,然后再最后的io操作,再另外处理。   但。。这叫什么面向对象,所以抽了点时间,写了个http的请求项目,暂时没测试出什么问题。希望有需要的,可以拿过去用,及时反馈bug。   1.http请求主流程走向:   /** * @author lyen.wu * http请求主流程 */ publ ...
通过使用本文的设置,引入附件的类,可以达到设置排序,可编辑,显示,换行,适应宽度等功能,tableViewer可以达到很多功能,但也由于功能的强大,导致需要输入代码的冗余和繁重,有没有一种简单的方法,就可以达到默认的基本功能呢。答案是有的,通过java的映射机制,我们可以简化很多有规律的代码在我这篇文章的规范中,model类,会配备一个modelFinal类,final类是为了配置属性的排序,和属性对应的文字的排序。GoodsBean.java private int goodsId; private String goodsName; private String stardard ...
扩展table类,在很多时候table都不止局限于文本的显示,可能还有可输入文本框,按钮,等控件。在这点利用tableeditor可以解决,但是也是由于tableeditor比较冗余的代码,所以我把它封装在一个控件里面,同时也解决了获取item内 ...
个人觉得虽然快捷键这东西,虽然在开发中并不是必须的,但是利用好了快捷键可以减少鼠标使用次数,然后让你的双手,完全放到键盘上。 个人使用过flashbuilder,eclipse,xcode,有个习惯,每次接触新的语言新的编译器,都要先掌握好一些很常用的快捷键,flashbuilder和eclipse都差不多,所以不在此列出来,以下就说下,我比较常用的快捷键。如果有错,请指出来。   1.修改变量或方法名,且更新全部的引用 eclipse:alt+shift+r xcode:command+control+e   2.代码提示 eclipse:alt+/ xcode:opti ...
在swt中,tableeditor提供了添加tableItem添加附加控件的功能。但是在删除的时候, 有可能会遇到删除了item,btn,editor之后,item和btn没有对齐的情况,就好像下面这种。  那问题怎么解决呢,其实很简单,你可以重新去调用一次tableEditor的layout()事件,就可以帮你刷新了。 又或者重新再setEditor,当然有最方便的,调用table.notifyListeners(SWT.KeyDown, null); 下面是一个小栗子   import java.util.HashMap; import org.eclipse.swt. ...
在很多时候,我们都要用到自己抛出事件,所以就必须了解事件的机制 以SelectionListener中的widgetSelected为例子 Button btn = new Button(shell, 0); btn.setText("这是测试"); btn.addListener(SWT.Selection, new Listener() { //相当于btn.addSelectionListener(new SelectionListener)实现了widgetSelected @Override public void handleEvent(Event ...
关于swt中image的图片信息保存,bitmapdata的用法 bitmapdata其实就是一个图片的信息值,比如一个图片是100*100的size,那么它就有10000个像素点,每个像素点其实就一个颜色值。这个颜色值就是一个32位的ARGB值,用uint整数类型表示,即alpha 和red green blue 三原色。这样的数组组成了所有的图片。0xFF669900表示一个不透明的橙色,其中0X 表示16进制,FF就是就是16进制中2位数的最大值,0XFF相当于100%的意思,669900就是三原色。然后这10000个像素点再交给cpu描绘,就成了图片了。 所以,如果能将bitma ...
在线程中往往需要做一些阻塞,但是如果每次都是写一个循环,那不就很冗余,可以把睡眠的代码分离出来,如果停止睡眠就把sleep设置为false。  这样的设置其实是为了减少调用Thread.sleep的延误,比如说,你是Thread.sleep(30000),那么你在这30000毫秒的时间内,你是做不了事情的,但是如果你是new了MySleep的类,你就可以控制在这30000的时间内何时跳出睡眠。你可以把时间单位调低一点,就可以更加精准了。    public class MySleep { private long sleepTime = 0;//要阻塞的时间 private ...
Global site tag (gtag.js) - Google Analytics