1

2 つの別個のアプリケーションがあり、それぞれが独自の JVM で実行されています。App1 は ServerSocket を実装し、リクエストを待ちます。App2 は Socket を実装し、App1 への要求を実行します。

App1 は、App2 がリクエストを実行した後 (およびフォーカスを App1 に転送した後)、または App1 がリクエストを実行した後 (およびフォーカスを取得した後) に、アクティブなプロセス/ウィンドウになる必要があります。

それ、どうやったら出来るの?

App1 で Window.toFront() メソッドを使用しようとしましたが、タスク バーのバーが点滅するだけです。

4

1 に答える 1

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();
            }
        }
    });
}
于 2012-07-19T14:20:09.350 に答える