SWT有什么方法可以让生成的shell出现在最前面,而不获得焦点?

zzndino 2007-09-30 10:51:44
SWT有什么方法可以让生成的shell出现在最前面,而不获得焦点?
...全文
404 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kellen_itjob 2011-05-24
  • 打赏
  • 举报
回复
windows操作系统还可以利用SWT的一个小BUG来达成这种效果,如果需要支持linux则有点问题

windows的实现方式为:
1.在原窗口打开的时候创建不能获得焦点的窗口,设置属性为隐藏
2.需要打开不能获得焦点的窗口时设置可见属性为TRUE
因为在原窗口打开的时候不能获得焦点的窗口已隐式打开,点击按钮时控制其显隐,不会获得焦点,这个其实是SWT在WINDOWS中的一个BUG,SHELL源码有注解,而linux版没有此BUG
zzndino 2007-10-09
  • 打赏
  • 举报
回复
shell.moveAbove(Display.getCurrent().getActiveShell());
我用这种方法,但是在原来主窗体没有获得焦点的时候,新弹出来的子窗体是不会移到最上面,只能点一次新的子窗体,让其获得焦点,再出来的子窗体就可以自动到最前面了,请问怎么解决不管焦点在什么软件(即焦点不一定在这个软件的某个窗体上)的窗体上面只要这个子窗体要弹出就一定会在所有窗体的最上面出现?
zzndino 2007-09-30
  • 打赏
  • 举报
回复
焦点就停在原来所在的窗口,这个窗口也可能是自己写的程序本身,也可能是其他程序的窗口,总之就是在这个shell出现前焦点在哪里,这个shell出现后焦点还在原来的窗口上面而不转移到新的shell上面。
shadao 2007-09-30
  • 打赏
  • 举报
回复

那你期望焦点出现在哪里?

还是只需要焦点不出现在你的shell?
zzndino 2007-09-30
  • 打赏
  • 举报
回复
hehe要是兄台知道不管什么方法,说出来看看,当然最好是swt的。多谢了
shadao 2007-09-30
  • 打赏
  • 举报
回复
非常本地哦
可能要用jni

swt貌似不可以获取caller的句柄

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧