0

Swing でアプリケーションを開発しています。2 台のモニターを接続すると、アプリケーションが表示されません。アイコンは unity サイド バーに表示されますが、ウィンドウはどこにも表示されません。

基本に戻り、Oracle チュートリアルから HelloWorldSwing.java を実行しました。

http://docs.oracle.com/javase/tutorial/uiswing/examples/start/HelloWorldSwingProject/src/start/HelloWorldSwing.java

同じ問題が存在します。次に、モニター 1 を左側に配置すると、HelloWorld が左上隅に表示されることがわかりました。

メインモニターが右側にあるときに、HelloWorldSwing (および一般的な Swing アプリ) を Unity に表示するにはどうすればよいですか?

私のディスプレイ構成: モニター 1 (ラップトップ画面) 1280x800 モニター 2 (「不明」) 1440x900

モニター 2 は左側にあります。~/.xprofile に次のものがあります。

xrandr --newmode "1680x1050" 146.25  1680 1784 1960 2240  1050 1053 1059 1089 -hsync +vsync
xrandr --addmode VGA1 1680x1050
xrandr --newmode "1440x900" 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync
xrandr --addmode VGA1 1440x900
4

1 に答える 1

0

さて、それは簡単です

private static void createAndShowGUI() {
    //Create and set up the window.
    JFrame frame = new JFrame("HelloWorldSwing");
    frame.setLocation (50, 50);
    ...

setLocation は、複数のモニターに問題なく対応します。モニター 2 を離れると、デフォルトの場所 (setLocation が呼び出されない場合) が画面外に表示されるだけです。

期待どおり、0,0 は左側のモニターの左上にあります。ただし、setLocation(0,0) を使用すると、ウィンドウの閉じる/最小化/最大化ボタンがユニティ トップ バーによって隠されます。

ユニティのトップバー/サイドバーと統合するには、プラットフォーム固有のものが必要だと思います。

于 2013-08-19T11:46:12.797 に答える