当我从Eclipse启动SWT应用程序时,Shell总是在后台启动,IDE就在它前面。
我尝试了一切,比如设置焦点,激活外壳等等。
其他人是否经历过相同的行为甚至可能解决了?
答案 0 :(得分:3)
当您激活Shell(通常通过open()
方法)时,SWT会要求您指定平台上的窗口管理器使shell处于活动状态。但是,根据窗口管理器的不同,shell可能不会成为桌面上最顶层的shell。 Here's an article提供了有关打开shell的一些有趣信息(请参阅“11.4.6打开Shell”一节)。
如果这是导致问题的原因,您可以使用Shell类的 forceActive()
方法强制shell变为活动状态。但是,根据您的应用程序,您可能不希望采用这种方法。以下是文章中的警告:
大多数程序都不应该使用 forceActive()
强制shell应该是活动的 保留给你的那些场合 必须引起用户的注意 (这几乎从来没有)。毕竟,做 当另一个窗口被盗时,你喜欢它 你的按键?
答案 1 :(得分:-1)
仔细检查你的清单,看看你是否遗漏了什么。也就是说,如果您通过Eclipse RCP执行此操作