Eclipse から SWT アプリケーションを起動すると、シェルは常にバックグラウンドで起動し、その前に IDE が表示されます。
フォーカスの設定、シェルのアクティブ化など、すべてを試しました。
他の誰かが同じ動作を経験し、おそらくそれを解決しましたか?
シェルをアクティブ化すると(通常はopen()
メソッドを介して)、SWTは指定されたプラットフォームのウィンドウマネージャーにシェルをアクティブにするように要求します。ただし、ウィンドウマネージャーによっては、シェルがデスクトップの最上位のシェルにならない場合があります。 これは、シェルを開くことに関するいくつかの興味深い情報を含む記事です(セクション「11.4.6シェルを開く」を参照)。
これが問題の原因である場合は、 ShellクラスのforceActive()
メソッドを使用して、シェルを強制的にアクティブにすることができる場合があります。ただし、アプリケーションによっては、このアプローチを採用したくない場合があります。以下は、記事からの警告です。
ほとんどのプログラムはforceActive()を使用する必要はありません
シェルを強制的にアクティブにすることは、ユーザーの注意を引く必要がある場合のために予約する必要があります(これはほとんどありません)。結局のところ、別のウィンドウがキーストロークを盗むとき、あなたはそれが好きですか?
マニフェストを再確認して、何か不足していないか確認してください。つまり、Eclipse RCP 経由でこれを行っている場合