2

画面上のオブジェクトを見つける必要があり、今のところ正常に動作するプログラムに取り組んでいますが、マルチモニター構成で問題が発生しました。

-classは、GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()複数の画面で検索領域を定義するために必要なほとんどすべての詳細を提供できますが、デバイスの順序は提供できません。(たとえば、セカンダリモニターはプライマリの右側です)。

したがって、Javaでのプライマリモニターとセカンダリモニターの画面上の場所を見つける方法を探しています。

4

3 に答える 3

4

値を読み取っGraphicsDevice.html#getIDstring()て、モニターのIDを判別してみてください。

GraphicsEnvironment ge = GraphicsEnvironment.
getLocalGraphicsEnvironment();
GraphicsDevice[] gs = ge.getScreenDevices();
for (int j = 0; j < gs.length; j++) { 
   GraphicsDevice gd = gs[j];
   System.out.println("ID#: " + gd.getDeviceID());
}

私にこれを与えます:

ID#: \Display0
ID#: \Display1

セカンダリモニターがプライマリの左側にある場合があることを忘れないでください。この場合、負の境界があります。

画面領域の境界全体を判別するために、JDKJavadocsサイトで提供されている例を使用できます。 GraphicsConfiguration

于 2013-02-04T14:33:23.197 に答える
0

おそらく、これは各デバイスのx座標とy座標から導出する必要があります。

于 2013-02-04T14:23:53.450 に答える
0

x座標とy座標により、セカンダリ画面が右側に表示されます。

ただし、プライマリ画面が物理的に左側にあるのか、中央にあるのか、右側にあるのかを知る方法はありません。それはモニターを接続した人次第です。

実際には、1台のワークステーションで9つのパネルを構成する方法があります。(これがあればいいのにと思います。)したがって、画面の向きはユーザー次第です。

于 2013-02-04T14:27:40.983 に答える