2010-12-16 7 views
5

Javaプログラムの実行中に他のプログラムを使用している人を止める方法が必要です。すなわち停止の人々がタブを切り替えると、プログラムのフルスクリーンを使用するようにするには...Javaフルスクリーンプログラム(Swing)-Tab/ALT F4

感謝:)

+0

私は、プラットフォーム依存のJNIに頼ることなくそうすることはできないと思います。良い質問です。 –

+3

なぜあなたはそれをしたいですか?マルチタスク・オペレーティング・システムを稼動させることの全ポイントは、人々がそれを行うことができるようにすることです。 – DJClayworth

+0

見てください:http://stackoverflow.com/questions/6127709/remove-the-possibility-of-using-alt-f4-and-alt-tab-in-java-gui?lq=1 – seewip

答えて

9

を代替F4キーを押します。

window.setExtendedState(Frame.MAXIMIZED_BOTH); //maximise window 

window.setUndecorated(true); //remove decorations e.g. x in top right 

ウィンドウを常に最優先にする(他の実行中のプログラムを使用しているユーザーを停止する)。

window.setAlwaysOnTop(true); 
+0

ありがとうSte T :) –

+0

最大化されたウィンドウは、ウィンドウのタスクバーにアクセスできませんか?あなたのウィンドウが常に上になるように設定されている場合は、後で実行するモーダルダイアログを隠すでしょうか? – Curtis

+3

ウィンドウがフォーカスを失った場合、タスクバーは表示されますが、ウィンドウが修正されてフォーカスが失われたときにロボットをクリックすると、D –

7

あなたはJavaレベルでこれを実行できるようにするつもりはない - あなたはいくつかの種類の「キオスクモード」にオペレーティングシステムを配置する必要があります。

迷惑なコメント - あなた(またはあなたの顧客)がユーザーを嫌って永遠にあなたを呪うことを望んでいるため、これは必要ですか?あなたのプログラムに「コンピュータをシャットダウンする」といった機能を追加するつもりですか?

+9

+1の非請求解説が表示されます。私はすぐにそのようなプログラムをアンインストールします。 –

+6

多分、それは何らかの種類の公衆端末や何かのプログラムです。通常のデスクトップPCやラップトップでこのようなプログラムがなぜ必要になるのか、私はほとんど想像できません。 –

6

フルスクリーンサポートをお探しの場合は、これが私が使用するコードです。あなたが行くのに十分であるはずです。アプリケーションがフルスクリーンであるかどうかを言うには、グローバルブール変数が必要です。あなたはあなたが好きなものを表示するためにそれをつけることができます。

 
/** 
    * Method allows changing whether this window is displayed in fullscreen or 
    * windowed mode. 
    * @param fullscreen true = change to fullscreen, 
    *     false = change to windowed 
    */ 
    public void setFullscreen(boolean fullscreen) 
    { 
     //get a reference to the device. 
     GraphicsDevice device = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice(); 
     DisplayMode dispMode = device.getDisplayMode(); 
     //save the old display mode before changing it. 
     dispModeOld = device.getDisplayMode(); 

     if(this.fullscreen != fullscreen) 
     { //are we actually changing modes. 
      //change modes. 
      this.fullscreen = fullscreen; 
      // toggle fullscreen mode 
      if(!fullscreen) 
      { 
       //change to windowed mode. 
       //set the display mode back to the what it was when 
       //the program was launched. 
       device.setDisplayMode(dispModeOld); 
       //hide the frame so we can change it. 
       setVisible(false); 
       //remove the frame from being displayable. 
       dispose(); 
       //put the borders back on the frame. 
       setUndecorated(false); 
       //needed to unset this window as the fullscreen window. 
       device.setFullScreenWindow(null); 
       //recenter window 
       setLocationRelativeTo(null); 
       setResizable(true); 

       //reset the display mode to what it was before 
       //we changed it. 
       setVisible(true); 

      } 
      else 
      { //change to fullscreen. 
       //hide everything 
       setVisible(false); 
       //remove the frame from being displayable. 
       dispose(); 
       //remove borders around the frame 
       setUndecorated(true); 
       //make the window fullscreen. 
       device.setFullScreenWindow(this); 
       //attempt to change the screen resolution. 
       device.setDisplayMode(dispMode); 
       setResizable(false); 
       setAlwaysOnTop(false); 
       //show the frame 
       setVisible(true); 
      } 
      //make sure that the screen is refreshed. 
      repaint(); 
     } 
    } 
 
+0

Nice :)ありがとうございました。 –

+0

これは、アプリケーションをフルスクリーンで表示するための非常に広範な方法です。その他のほとんどのガイドには、 'device.setFullScreenWindow(this);'これは望ましくないエッジを残すことがあります。私は個人的に 'setLocationRelativeTo(null);を削除します。窓はその古い場所を覚えているように見え、それに戻るでしょう。 – Finnboy11