关于SWT学习的一些基本问题
2010-04-22 14:32
393 查看
楼主format_jade(至尊玉)2005-07-30 22:19:33 在 Java / Eclipse 提问
我是个Eclipse的新手,向各位虚心请教以下问题:
1,SWT的组件机制好像有些不同于AWT/Swing,它竟然不用add方法,而是设置一个坐标,我就纳闷,我怎么保证我设置的坐标不超出我的父组件而无法显示呢?SWT的组件之间到底是个什么样的关系呢?和AWT/Swing有什么不同呢?
2,Display是干吗的,它在整个组件的显示中承担什么任务,担当什么角色?
3,Eclipse带的那个SWT等API的帮助文档没有索引,哪里可以下到类似jdk的chm版的eclipse的有索引查询的帮助文档呢?
4,我的编辑器有时候老是显示一部份代码,右边的大纲视图的杰作,如何让编辑器一直显示全部代码?
5,对于一个Shell来说,close和dispose,open和setVisible有什么区别??
6,这段代码是什么意思??
while(!s.isDisposed()){
If(!d.readAndDispatch()){
d.sleep();//指的是线程sleep还是终止呀,如果sleep了整个程序能退出吗?
}
}
7,在Eclipse下用SWT写的程序,在Eclipse下执行没有问题,但是导出为.jar文件,执行时说找不到main类,我明明搜索设置了呀,怎么回事??
8,用eclipse的api写的程序如果拿到一没有Eclipse而只有java虚拟机的环境下执行,程序上哪找eclipse的api定义的类去呀?这个问题是怎么解决的呀!
请各位能帮帮小弟,万分感谢 !!
3 楼FutureStonesoft(丑石)回复于 2005-08-06 00:13:01 得分 10
说实在的,我真的很讨厌 2K_Ice_Bug(速溶咖啡(不加糖))
的傲气,楼主的问题虽然比较初级,但是大家都是这样过来的,只不过当初可能有些人靠自己看文档资料就明白了,有些人则很困惑,很需要大家讨论一下,又何尝不可呢?每个人的理解能力和学习能力本来就不同。楼主列出那么多问题,很有学习的诚意,也并没有什么很愚蠢的问题,这样打击人家的积极性是不对的……
1。SWT是只用设置坐标的吗?呵呵,建立一个SWT控件都指定了其父容器了啊,它们的构造方法一般都有两个参数,一个是父容器,另一个是控件样式如new
SWTControl(parent, style)。它的定位当然考布局来定义了,最好用的,当然是FormLayout
2。Display可以理解为一个显示器类(实际上不是),事实上它负责管理各个SWT组件与其运行平台(操作系统)之间的连接,你知道,SWT实际上是利用JNI调用本地OS的GUI
API实现。
3。好像没有chm格式的帮助文档,但是我觉得Eclipse里的这些帮助很好用啊,虽然没有各个类的索引,但是分类还是相当清晰的
4。有这个问题吗?呵呵,你的意思是代码折叠了,想让代码不折叠,是吧?这个可以到Window->Preference->Java->Editor->Foding里设置。
5。close就是关闭窗口,在内部其实它也是去调用dispose来释放它占用的内存资源的,
open是打开窗口、显示窗口、激活窗口,
setVisible是设置窗口可见还是不可见的
6。这个问题不错,如果你知道操作系统的消息运作机制,那么就不难理解了,SWT有一个监听线程,它处理操作系统发给SWT组件的消息,它是一直在后台运行的
while(!s.isDisposed()){ //如果窗体没有被释放,那么一直执行。调用Shell.close()方法或者Shell.disposed()时,跳出循环
//也既要求退出程序了,于是便退出程序
if(!d.readAndDispatch()){ //用Display读取操作系统给这个窗体程序的消息队列,如果没有读到要求分发的消息,那么该窗体的消息处理线程进入睡眠状态
//如果读到消息队列中有要求分发的消息,那么消息处理线程被唤起处理消息事件
d.sleep();
}
}
7。导出为jar的时候,你必须在MANIFEST.MF里指定完整的主类名(包含包名)才可以直接运行啊
8。你用到多少Eclipse的api就必须把它们全部一起跟程序发布,不过我想,你指的是独立运行SWT程序吧,那只要几个dll文件就可以了,对于Eclipse3.1,在eclipse/plugins/org.eclipse.swt.win32.win32.x86_3.1.0.jar
文件中,有三个dll文件,你把这个jar文件解压出来,将那三个dll文件放到system32目录等等在系统环境变量中有定义的地方就可以了,事实上也可以不解压出来,但个人觉得还是解压出来比较好; 对于Eclipse3.0x,在Eclipse/plugins/org.eclipse.swt.win32_3.0.2/os/win32/x86目录中有两个dll,同样的方法。
我是个Eclipse的新手,向各位虚心请教以下问题:
1,SWT的组件机制好像有些不同于AWT/Swing,它竟然不用add方法,而是设置一个坐标,我就纳闷,我怎么保证我设置的坐标不超出我的父组件而无法显示呢?SWT的组件之间到底是个什么样的关系呢?和AWT/Swing有什么不同呢?
2,Display是干吗的,它在整个组件的显示中承担什么任务,担当什么角色?
3,Eclipse带的那个SWT等API的帮助文档没有索引,哪里可以下到类似jdk的chm版的eclipse的有索引查询的帮助文档呢?
4,我的编辑器有时候老是显示一部份代码,右边的大纲视图的杰作,如何让编辑器一直显示全部代码?
5,对于一个Shell来说,close和dispose,open和setVisible有什么区别??
6,这段代码是什么意思??
while(!s.isDisposed()){
If(!d.readAndDispatch()){
d.sleep();//指的是线程sleep还是终止呀,如果sleep了整个程序能退出吗?
}
}
7,在Eclipse下用SWT写的程序,在Eclipse下执行没有问题,但是导出为.jar文件,执行时说找不到main类,我明明搜索设置了呀,怎么回事??
8,用eclipse的api写的程序如果拿到一没有Eclipse而只有java虚拟机的环境下执行,程序上哪找eclipse的api定义的类去呀?这个问题是怎么解决的呀!
请各位能帮帮小弟,万分感谢 !!
3 楼FutureStonesoft(丑石)回复于 2005-08-06 00:13:01 得分 10
说实在的,我真的很讨厌 2K_Ice_Bug(速溶咖啡(不加糖))
的傲气,楼主的问题虽然比较初级,但是大家都是这样过来的,只不过当初可能有些人靠自己看文档资料就明白了,有些人则很困惑,很需要大家讨论一下,又何尝不可呢?每个人的理解能力和学习能力本来就不同。楼主列出那么多问题,很有学习的诚意,也并没有什么很愚蠢的问题,这样打击人家的积极性是不对的……
1。SWT是只用设置坐标的吗?呵呵,建立一个SWT控件都指定了其父容器了啊,它们的构造方法一般都有两个参数,一个是父容器,另一个是控件样式如new
SWTControl(parent, style)。它的定位当然考布局来定义了,最好用的,当然是FormLayout
2。Display可以理解为一个显示器类(实际上不是),事实上它负责管理各个SWT组件与其运行平台(操作系统)之间的连接,你知道,SWT实际上是利用JNI调用本地OS的GUI
API实现。
3。好像没有chm格式的帮助文档,但是我觉得Eclipse里的这些帮助很好用啊,虽然没有各个类的索引,但是分类还是相当清晰的
4。有这个问题吗?呵呵,你的意思是代码折叠了,想让代码不折叠,是吧?这个可以到Window->Preference->Java->Editor->Foding里设置。
5。close就是关闭窗口,在内部其实它也是去调用dispose来释放它占用的内存资源的,
open是打开窗口、显示窗口、激活窗口,
setVisible是设置窗口可见还是不可见的
6。这个问题不错,如果你知道操作系统的消息运作机制,那么就不难理解了,SWT有一个监听线程,它处理操作系统发给SWT组件的消息,它是一直在后台运行的
while(!s.isDisposed()){ //如果窗体没有被释放,那么一直执行。调用Shell.close()方法或者Shell.disposed()时,跳出循环
//也既要求退出程序了,于是便退出程序
if(!d.readAndDispatch()){ //用Display读取操作系统给这个窗体程序的消息队列,如果没有读到要求分发的消息,那么该窗体的消息处理线程进入睡眠状态
//如果读到消息队列中有要求分发的消息,那么消息处理线程被唤起处理消息事件
d.sleep();
}
}
7。导出为jar的时候,你必须在MANIFEST.MF里指定完整的主类名(包含包名)才可以直接运行啊
8。你用到多少Eclipse的api就必须把它们全部一起跟程序发布,不过我想,你指的是独立运行SWT程序吧,那只要几个dll文件就可以了,对于Eclipse3.1,在eclipse/plugins/org.eclipse.swt.win32.win32.x86_3.1.0.jar
文件中,有三个dll文件,你把这个jar文件解压出来,将那三个dll文件放到system32目录等等在系统环境变量中有定义的地方就可以了,事实上也可以不解压出来,但个人觉得还是解压出来比较好; 对于Eclipse3.0x,在Eclipse/plugins/org.eclipse.swt.win32_3.0.2/os/win32/x86目录中有两个dll,同样的方法。
相关文章推荐
- 关于新手学习python的常犯的基本问题
- java中关于基本类型和数组的一些注意问题
- 工作学习笔记——一些关于链接的有趣小问题
- 回答一些关于深度神经网络的基本问题
- 关于一些电商的问题汇集学习
- ddpush 学习之路 15 关于DDPUSH 的一些很多人会问到的问题和解答
- 关于php学习的一些小问题
- 关于整个puppet的学习发现一些的问题
- [学习记录]关于解决问题思路的一些反思
- linux的一些基本命令(关于文件操作, 进程操作,以及/boot问题)
- 【hadoop】Hadoop学习笔记(五):一些关于HDFS的基本知识
- 关于Android学习要问的一些问题
- Hadoop学习笔记(五):一些关于HDFS的基本知识
- 关于Integer对象比较,和int基本类型比较的一些问题
- 当前学习计算机科学的一些基本要求和问题
- Android学习札记31:收集到的一些关于Handler和Runnable的问题(2)
- 【软件工程】关于软件工程里需要熟悉的一些基本问题的讨论(一)
- 关于一些 基本的math函数 和 float double 的范围 问题
- 问题:android学习内容破碎,我个人关于如何学习android的一些个人经历
- 【Linux基础学习之一】关于Linux的一些基本操作(linux登陆、口令文件、多终端登陆)