私は次の40分で大学でコンサートを開き、いくつかの異なる画面で作成したフルスクリーンアプリケーションを投影しています。今夜はプロジェクションシステムを手に入れることができましたが、プラグを差し込むと画面の解像度が大幅に変化しますが、プログラムを実行すると、古い画面解像度を使用しているかのように動作します。ビジュアルディスプレイ全体を正確なピクセル値にコーディングしましたが、画面の側面から押し出されたため、半分が表示されません。システム環境設定で手動で表示を変更しようとしましたが、効果がありません。解像度に合わせてさまざまな表示モードを作成しようとしましたが、UnsupportedOperationException:表示モードを変更できませんというメッセージが表示され続けます。
以下は、フルスクリーンを初期化するために使用するコードです。
frame = new display();
canvas = new Canvas();
canvas.addKeyListener(this);
frame.setUndecorated(true);
frame.getContentPane().add(canvas);
strategy = canvas.getBufferStrategy();
environment = GraphicsEnvironment.getLocalGraphicsEnvironment();
device = environment.getDefaultScreenDevice();
oldDisplay = device.getDisplayMode();
try {
device.setFullScreenWindow(frame);
newDisplay = new DisplayMode(1440, 900, 60, 60);
device.setDisplayMode(newDisplay);
catch (Exception ex) { }
canvas.requestFocus();
canvas.setFocusTraversalKeysEnabled(false);
frame.setVisible(true);
canvas.createBufferStrategy(2);
strategy = canvas.getBufferStrategy();
ディスプレイは、JFrameを直接拡張したものです。
これが機能しない場合は、私の学位のこのモジュールに失敗します。今私を失敗させないでください!ありがとうございました!
編集:修正された例外しかし、プログラムは、800、600、60、60を設定しているにもかかわらず、解像度をまったく変更していないようです。