初学SWT的一些经验分享以及注意事项
来源:互联网 发布:mac版pscs3中文破解版 编辑:程序博客网 时间:2024/04/30 06:27
出处:http://www.blogjava.net/jazzy/
本节介绍我在SWT开发中碰到的问题以及一些经验总结。欢迎批评指正。
- 上文提到的SWT插件功能十分强大,可以随时打开编辑SWT/Swing GUI,而不像NetBeans一定需要一个对应form配置文件才可以编辑一旦该文件丢失就无法可视化编辑了。但是也有bug和不完善的地方,例如复制/粘贴功能,如果你要复制一个多层结构的Composite时候会导致莫名错误,另外,在跨Class复制Composite的时候会导致Image,font等属性的丢失。请注意。
- SWT运行时需要指定DLL,所以要在运行时加参数,如果觉得在eclipse中每次run都要手工加参数太麻烦的话,你可以把那些dll拷贝到windows的system32目录下,这样就可以直接run/debug而无需手工指定参数了。
- 对于熟悉Swing的开发人员来说,初次使用SWT可能对SWT中的组件创建时需要指定父亲组件而感到不适应。
- 因为SWT是原生Widget,SWT的GUI大多直接用JNI调用系统资源(例如Color,Font等),这些系统资源是无法用JVM的垃圾回收机制回收的,所以记得显式的调用dispose()方法在不需要的时候释放资源。否则有内存溢出的危险。
- 多线程问题:SWT使用Display类来维护GUI及其使用的系统资源。它禁止用户在其他线程下访问GUI资源。例如:
public void run() {
butt.setText("test");
}
这样的写法会导致非法线程异常。如果需要在其他线程下访问GUI资源可以使用如下方法:
Display.getCurrent().asyncExec(new Thread () {
public void run() {
butt.setText("test");
}
})
- Display提供同步异步方法分别是: syncExec(Runnable)和asyncExec(Runnable)。
- 对于Display,在同一个线程里,不能申明2个Display实例。同样的,一个Display实例也不能跨线程使用。也就是说,如果你要在另外一个线程中显示一个窗体,你必须另外创建一个Display实例。不然会导致异常。)
- 初学SWT的一些经验分享以及注意事项
- 初学Android的一些注意事项
- 初学J2ME的一些经验
- 用SWT开发的一些经验
- Android Facebook分享以及一些注意事项
- 初学ui设计的一些注意事项
- 这篇文章挺有意思 关于如何自学web前端以及一些面试的经验分享
- 经验分享:开发SWT应用两点心得
- 多年经验程序员给初学编程人的建议分享
- 分享Swing学习的一些经验zz
- 分享Swing学习的一些经验
- 【转载】分享Swing学习的一些经验
- 分享Swing学习的一些经验
- 分享Swing学习的一些经验
- jsp处理表单的一些经验分享
- JSP处理表单的一些经验分享
- web测试的一些经验分享
- 分享我的一些SEO经验
- 开始更新blog
- JBoss下采用thin driver连接 Oracle RAC方法
- db_file_multiblock_read_count参数设置取值测试
- 4.5~4.7
- 用(10+2)*5法来对付惰性
- 初学SWT的一些经验分享以及注意事项
- database design process
- [转]Swing技巧总结
- 某图书信息网被加入恶意代码
- Fundamentals of Relational Database Design
- Java连接各种数据库的实例
- JSP环境的搭建
- 2.1.2 TCP/IP协议集
- 中了MSN FUNNY病毒后,电脑登录时总是注销,无法进入系统的解决办法