我有两个独立的应用程序,每个应用程序都在自己的 JVM 中运行。App1 实现一个 ServerSocket 并等待请求。App2 实现一个 Socket 并向 App1 执行请求。
在 App2 执行请求(并将焦点转移到 App1)或 App1 完成请求(并获取焦点)之后,App1 应该成为活动进程/窗口。
我怎么做?
我尝试在 App1 上使用 Window.toFront() 方法,但所发生的只是任务栏中的一个闪烁栏。
您可以尝试将requestFocusInWindow()或requestFocus()与 toFront() 结合使用。但是,不能保证这会成功。焦点行为在一定程度上依赖于平台。
从另一个问题来看,这个功能似乎适用于 Windows 7:
private void BringToFront() {
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
if(jFrame != null) {
jFrame.toFront();
jFrame.repaint();
}
}
});
}