为什么我的SWT Shell总是出现在后台?

时间:2009-06-06 17:36:10

标签: java eclipse swt

当我从Eclipse启动SWT应用程序时,Shell总是在后台启动,IDE就在它前面。

我尝试了一切,比如设置焦点,激活外壳等等。

其他人是否经历过相同的行为甚至可能解决了?

2 个答案:

答案 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执行此操作