維持しなければならないレガシー アプリケーションで奇妙な動作が発生します。起動時に、アプリケーションの JFrame は最近閉じられた位置に移動されます (マルチ モニター設定でも問題なく動作します)。
JFrame がセカンダリ モニターに移動され ( を呼び出して実行setLocation(x, y)
)、 を呼び出した後に JDialog が表示されると、setRelativeTo(mainFrame)
JDialog がプライマリ モニターに表示されます。
この問題を回避するには、メインフレームをプライマリ モニタにドラッグし、セカンダリ モニタに戻す必要があります。セカンダリ モニターに表示されていても、アプリケーションの起動時に \Display0 が返さ
れることがわかりました (「プライマリ ディスプレイ」を意味します)。mainFrame.getGraphicsConfiguration().getDevice().getIDstring()
メイン フレームをプライマリ モニタにドラッグしてセカンダリ モニタに戻すと、メソッドは \Display1 を返します。
今、私は2つの質問があります:
- アプリケーションがどのモニターに配置されているかをアプリケーションに伝える方法はありますか?
- JFrame と JDialog を使用して簡単な例を作成しようとしました。残念ながら、期待どおりに動作し、問題を再現できません。この動作を引き起こす可能性がある、アプリケーションで何を探すべきかについてのヒントはありますか?
ありがとうござい
ます