科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道SWT代码研究

SWT代码研究

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

  代码的主要结构功能划分   1、org.eclipse.swt下有SWT,SWTException和SWTError类,提供了SWT常量与对异常处理的支持,SWT在构造窗口组件和事件处理中有很大的用途。

作者:中国IT实验室 来源:中国IT实验室 2007年9月24日

关键字: Tomcat 编程 java

  • 评论
  • 分享微博
  • 分享邮件

  代码的主要结构功能划分
  1、org.eclipse.swt下有SWT,SWTException和SWTError类,提供了SWT常量与对异常处理的支持,SWT在构造窗口组件和事件处理中有很大的用途;
  2、org.eclipse.swt.widgets包下是常用、核心SWT窗口小部件(widget)的公有API类定义所在。如Display、Shell、Button、Menu等。我们一般编写GUI程序用这些Widget就可以了;
  3、org.eclipse.swt.events包中提供了对SWT事件监视器(Event Listener)的支持,如Button的SelectionListener,Mouse的MouseListener、MouseMoveListener和MouseTrackListener等等,还有与这些对应Listener的默认Adapter实现类和Event类。
  4、org.eclipse.swt.layout包中是控制GUI程序Layout的类所在(当然包括了相关的结构数据类),其中有FillLayout、GridLayout和RowLayout三种;
  5、org.eclipse.swt.graphics包中包含了SWT中graphic类,如Color、Font和Image等;
  6、org.eclipse.swt.printer提供了对打印服务的支持;
  7、org.eclipse.swt.ole.win32提供了SWT中Win32 OLE实现的一些类;
  8、org.eclipse.swt.custom包中包含了一些可自定义的窗口小部件,对于开发复杂的GUI程序,非常有帮助;
  9、org.eclipse.swt.dnd提供了对拖放(Drag and Drop)的支持.
  
  注意对一般的GUI编程,org.eclipse.swt.widgets,org.eclipse.swt.events和org.eclipse.swt.layout三个package是最基本、最重要的。

  import org.eclipse.swt.*;
  import org.eclipse.swt.widgets.*;
  public class SWTHello {
  public static void main(String[] args) {
  /*
  * Display的实例用于管理SWT与底层操作系统的连接,其
  * 最重要的功能是根据平台的事件处理模型实现SWT的event
  * loop,一般来说,只要一个Display的实例就可以了。
  * 注意,在创建任何window前(Shell实例)需创建Display实例,
  * 在Shell实例关闭时除掉Display实例
  */
  Display display = new Display();
  
  /*
  *Shell是作为主窗口
  */
  Shell shell = new Shell(display);
  /*
  * SWT.NONE是Sytle bit,用于表明widget的style
  */
  Label label = new Label(shell,SWT.NONE);
  label.setText("Hello");
  shell.pack();
  label.pack();
  shell.open();
  while(!shell.isDisposed())
  {
  if(!display.readAndDispatch())
  display.sleep();
  }
  shell.dispose();
  }
  }
  
  关于Resource的Disposal
  1、如果你用构造函数创建了widget或者graphic对象,当你不需要时你必须手动地dispose掉它;
  2、如果你不是使用构造函数得到这个widget或者graphic对象,由于不是你allocate的,你不需要手动来dispose掉它;
  3、如果你传递一个widget或者graphic对象的reference给另一个对象,那么你必须小心,不要在它仍在被使用中就dispose掉它;
  4、当你close掉一个shell,那么这个shell及其子widget会被递归dispose掉的,虽然你不需再dispose掉那些widget,但是你必须free掉与这些widget相关的图像资源;
  5、如果在一个widget的生命期中创建了graphic对象,可以通过注册一个dispose listener来free这个graphic对象,不过数据对象如Rectangle和Point没有使用操作系统资源,不用手动dispose(它们也没有dispose方法).

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    闂傚倸鍊风欢锟犲矗鎼淬劌绐楅柡鍥╁亹閺嬪酣鏌曡箛瀣仾濠殿垰銈搁弻鏇$疀鐎n亖鍋撻弽顓ㄧ稏闁跨噦鎷�

    婵犵數濮烽。浠嬪焵椤掆偓閸熷潡鍩€椤掆偓缂嶅﹪骞冨Ο璇茬窞闁归偊鍓涢悾娲⒑闂堟单鍫ュ疾濠婂嫭鍙忔繝濠傜墛閸嬨劍銇勯弽銊с€掗柟钘夊暣閺岀喖鎮滈埡鍌涚彋閻庤娲樺畝绋跨暦閸洖鐓涢柛灞剧矋濞堟悂姊绘担绛嬪殐闁搞劋鍗冲畷銏ゅ冀椤愩儱小闂佹寧绋戠€氼參宕伴崱妯镐簻闁靛牆鎳庢慨顒€鈹戦埥鍡椾簼婵犮垺锚铻炴俊銈呮噺閸嬪倹绻涢崱妯诲碍閻庢艾顦甸弻宥堫檨闁告挾鍠庨锝夘敆娓氬﹦鐭楁繛鎾村焹閸嬫捇鏌e☉娆愬磳闁哄本绋戦埞鎴﹀川椤曞懏鈻婄紓鍌欑劍椤ㄥ懘鎯岄崒鐐靛祦閹兼番鍔岄悞鍨亜閹烘垵顏╅悗姘槹閵囧嫰寮介妸褎鍣ョ紓浣筋嚙濡繈寮婚悢纰辨晣鐟滃秹鎮橀懠顒傜<閺夊牄鍔庣粻鐐烘煛鐏炶姤鍠橀柡浣瑰姍瀹曠喖顢橀悩铏钒闂備浇宕垫慨鎶芥⒔瀹ュ鍨傞柦妯猴級閿濆绀嬫い鏍ㄧ☉濞堟粓姊虹涵鍛【妞ゎ偅娲熼崺鈧い鎺嗗亾闁挎洩濡囧Σ鎰板籍閸繄顓洪梺缁樺姇瀵剙螖閸涱喚鍘搁梺鍓插亽閸嬪嫰鎮橀敃鍌涚厱閻庯綆鍋嗘晶顒傜磼閸屾稑绗ч柟鐟板閹煎湱鎲撮崟闈涙櫏闂傚倷绀侀幖顐も偓姘卞厴瀹曞綊鏌嗗鍛紱閻庡箍鍎遍ˇ浼村磿瀹ュ鐓曢柡鍥ュ妼婢ь垰霉閻樿秮顏堟箒闂佹寧绻傚Λ妤呭煝閺囥垺鐓冪憸婊堝礈濮樿泛钃熼柕濞у嫷鍋ㄩ梺缁樺姇椤曨參鍩㈤弴銏″€甸柨婵嗗€瑰▍鍥ㄣ亜韫囨稐鎲鹃柡灞炬礋瀹曢亶顢橀悢濂変紦

    重磅专题
    往期文章
    最新文章