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

标签 java eclipse swt

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

我什么都试过了,比如设置焦点、激活 shell 等。

其他人是否遇到过相同的行为,甚至可能解决了它?

最佳答案

当您激活 Shell (通常通过 open() 方法),SWT 要求给定平台上的窗口管理器激活 shell。但是,根据窗口管理器,shell 可能不会成为桌面上最顶层的 shell。 Here's an article以及一些关于打开 shell 的有趣信息(请参阅“11.4.6 打开 Shell”部分)。

如果这是问题的原因,您可以使用 ShellforceActive() 方法强制 shell 激活的类。但是,根据您的应用程序,您可能不想采用这种方法。以下是文章中的警告:

Most Programs Should Never Need to Use forceActive()

Forcing a shell to be active should be reserved for those occasions when you must get the attention of the user (which is almost never). After all, do you like it when another window steals your keystrokes?

关于java - 为什么我的 SWT Shell 总是在后台出现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/960170/

相关文章:

java - 只是收集请求表单值并将其存储到数据库的最小项目,什么java框架?

java - WebSphere Liberty Profile - 如何在部署 Spring Boot uber JAR 时添加安全约束

javascript - 如何在 Eclipse Luna 中禁用 Tern 同步?

java - 如果我未能为公共(public)字段和方法提供 JavaDoc 描述/注释,如何让 IntelliJ 向我发出警告?

eclipse - 惰性和延​​迟 TreeViewer 问题

java - 如何制作一个包含多个组件的 JTable?

java - 使用 Spring Data MongoDB 时,使用 Map 作为 bean 中的属性时出现异常?

eclipse - Subclipse 和 GitHub 不工作

java - 使用 Java 实现最小形状绘图工具桌面应用程序的指南