3

維持しなければならないレガシー アプリケーションで奇妙な動作が発生します。起動時に、アプリケーションの JFrame は最近閉じられた位置に移動されます (マルチ モニター設定でも問題なく動作します)。
JFrame がセカンダリ モニターに移動され ( を呼び出して実行setLocation(x, y))、 を呼び出した後に JDialog が表示されると、setRelativeTo(mainFrame)JDialog がプライマリ モニターに表示されます。

この問題を回避するには、メインフレームをプライマリ モニタにドラッグし、セカンダリ モニタに戻す必要があります。セカンダリ モニターに表示されていても、アプリケーションの起動時に \Display0 が返さ

れることがわかりました (「プライマリ ディスプレイ」を意味します)。mainFrame.getGraphicsConfiguration().getDevice().getIDstring()メイン フレームをプライマリ モニタにドラッグしてセカンダリ モニタに戻すと、メソッドは \Display1 を返します。

今、私は2つの質問があります:

  1. アプリケーションがどのモニターに配置されているかをアプリケーションに伝える方法はありますか?
  2. JFrame と JDialog を使用して簡単な例を作成しようとしました。残念ながら、期待どおりに動作し、問題を再現できません。この動作を引き起こす可能性がある、アプリケーションで何を探すべきかについてのヒントはありますか?

ありがとうござい
ます

4

2 に答える 2

2

最初の質問には、 を使用できますJFrame(GraphicsConfiguration)

問題が再現できない場合は、別の原因で問題が発生している可能性があります

于 2013-07-29T05:25:32.043 に答える