1

まず、デュアル モニターがデフォルトの左から右ではなく、カスタムの位置にあることに注意してください。

全画面排他モードのゲームを作成しようとしていましたが、テストで、EXIT_ON_CLOSE (および System.exit) を使用すると、モニターのセットアップがデフォルトの左から右にリセットされることに気付きました。しかし、DISPOSE_ON_CLOSE を使用した場合 (および単に dispose() を使用した場合) は、デスクトップに戻ったときに完全に正常になります。これは受け入れられる慣行ですか、それとも私が見逃しているものはありますか?

関連部分:

import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class FullScreenTest extends JFrame {

    public FullScreenTest() {
        GraphicsDevice screen = GraphicsEnvironment.
              getLocalGraphicsEnvironment().getDefaultScreenDevice();
        add(new JLabel("Test"));
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        screen.setFullScreenWindow(this);
    }

    public static void main(String[] args) {
        FullScreenTest test = new FullScreenTest();
    }
}
4

2 に答える 2

2

しかし、私が使用したときDISPOSE_ON_CLOSE(そして単にdispose()のために)、デスクトップに戻ったときは完全に正常でした

それはいいです。それにこだわります。多くの開発者はEXIT_ON_CLOSE、それが完全に不要な場合に使用します。

DISPOSE_ON_CLOSEJREを終了するために機能しない場合は、他のGUI要素がまだ表示されているか、他の非デーモンスレッドが実行されていることを意味します。その場合は、通常、他のスレッドを明示的に終了するか、安全に終了できることを確認することをお勧めします。

于 2012-07-06T17:19:32.913 に答える
2
于 2012-07-06T17:01:26.667 に答える