我的SWT学习笔记之三 4月20号

来源:互联网 发布:淘宝有什么冷门类目 编辑:程序博客网 时间:2024/05/22 17:19

郁闷之极,写了半天浏览器挂了,重写,简单点写啦~

label:

1、构造函数的参数2不是针对这个控件的父控件的位置的,而是上面的字在label中的位置,同理于text控件

2、label的大小并不是setText后就直接会更新的,除非事先在父控件中setLayout了,或者调用了label的pack方法压缩了一把,其实这里的压缩感觉可以理解成最小程度的放大。

button:

1、构造函数的参数2直接决定botton的类型(在c#中直接就是其他的控件了),比如checkbox、radio、箭头、按下就不起,等等。

事件:

每个控件都有他自己的事件,他的每一个事件xxx都有对应的监听器xxxListener和适配器xxxAdapter,监听器是接口,而适配器是实现了这个接口的抽象类,他的实现都是搞的空方法,这样你只需要重写自己关注的方法就ok了。

 EventObject:

每个时间都会传入自己的eventObject,这些eventobject的属性就是给我们处理这个事件以足够的依据,提供事件相关的各种信息,比如鼠标位置,按了什么键等等。

ShellEvent:中就一个doit,布尔属性,也就是你通过设置这个布尔属性来决定这个事情到底是做还是放弃,这个可以引申到所有具有这个属性的event上。

KeyEvent:charector-你按键对应的字符,取字符串用这个。keycode-键码,对应SWT.F1这类东西。statmask-你按这个键的时候还按了那些辅助键,比如alt、shift等等,这个可以引申到鼠标的event上。

MouseEvent:button告诉你1是左键,2是右键,滚轮(?,呵呵);xy是对应屏幕上的坐标。

untypedevent:就是common的时间对象,对应的就会有common的listener,这个不是在event下,而是在widget包下面。

 

1 Shell shell = new Shell ();
 
2    Listener listener = new Listener () {
 
3       public void handleEvent (Event e) {
 
4          switch (e.type) {
 
5             case SWT.Resize:
 
6                System.out.println ("Resize received");
 
7                break;
 
8             case SWT.Paint:
 
9                System.out.println ("Paint received");
10                break;
11             default:
12                System.out.println ("Unknown event received");
13          }

14       }

15    }
;
16    shell.addListener (SWT.Resize, listener);
17    shell.addListener (SWT.Paint, listener);

这个通用,但要根据请困具体的用,先用type属性判断一下大方向,再在大方向里有的放矢的调小属性go on。

 

原创粉丝点击