我目前正在 Windows 7 上开发 SWT java 应用程序。通常应用程序将最小化,当串行端口上有事件时,应用程序应最大化自身。以下代码执行最大化部分。
private void bringToFront(final Shell shell) {
shell.getDisplay().asyncExec(new Runnable() {
public void run() {
if(!shell.getMaximized()){
shell.setMaximized(true);
}
shell.forceActive();
}
});
}
但有时 SWT 应用程序会在另一个应用程序后面最大化。例如,如果我有一个以全屏模式运行的幻灯片,则最大化的应用程序位于幻灯片演示的后面。我希望将其最大化并置于所有其他应用程序之前。
谁能帮我?
除了您发现的方法之外,还有另一种“黑客”方法可以做到这一点,它不需要您最小化其他所有内容。你实际上需要打电话shell.setMinimized(false)
在那之后shell.setActive()
恢复之前的状态shell
。然而,这仅在以下情况下才有效:shell
确实处于最小化状态。所以这是我的最终解决方案,它人为地最小化shell
如果它还没有最小化。如果必须进行最小化,则成本是快速动画。
shell.getDisplay().syncExec(new Runnable() {
@Override
public void run() {
if (!shell.getMinimized())
{
shell.setMinimized(true);
}
shell.setMinimized(false);
shell.setActive();
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)