Java:将JFrame焦点转移到另一个JFrame

时间:2012-07-19 13:50:48

标签: java swing window focus jframe

我有两个独立的应用程序,每个都在自己的JVM中运行。 App1实现ServerSocket并等待请求。 App2实现了一个Socket并向App1执行请求。

在App2执行请求(并将焦点转移到App1)或App1完成请求(并获取焦点)后,App1应成为活动进程/窗口。

我该怎么做?

我尝试在App1上使用Window.toFront()方法,但所有发生的事情都是任务栏中的闪烁条。

1 个答案:

答案 0 :(得分:1)

您可以尝试将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();
            }
        }
    });
}