当我从 Eclipse 启动我的 SWT 应用程序时,Shell 总是在后台启动,IDE 在它前面。
我尝试了所有方法,例如设置焦点、激活 shell 等。
其他人是否经历过同样的行为,甚至可能解决了它?
当您激活一个Shell(通常通过该open()
方法)时,SWT 会要求您给定平台上的窗口管理器使该 Shell 处于活动状态。但是,根据窗口管理器的不同,shell 可能不会成为桌面上最顶层的 shell。 这是一篇文章,其中包含一些有关打开 shell 的有趣信息(请参阅“11.4.6 打开 shell”部分)。
如果这是您的问题的原因,您可以使用ShellforceActive()
类的方法来强制 shell 变为活动状态。但是,根据您的应用程序,您可能不想采用这种方法。以下是文章中的警告:
大多数程序永远不需要使用 forceActive()
当您必须引起用户的注意时(几乎永远不会),应该保留强制 shell 处于活动状态。毕竟,当另一个窗口窃取您的击键时,您是否喜欢它?
仔细检查您的清单,看看您是否缺少任何东西。也就是说,如果您通过 Eclipse RCP 执行此操作