◆PROCESSING 逆引きリファレンス
カテゴリー:制御系
フルスクリーンにするには(3.X用)
【解説】
PROCESSINGでは、初期状態でプログラムを実行すると、小さな実行結果ウィンドウを表示します。
この実行結果ウィンドウのサイズを変更するには size()命令を利用します。詳しくは「実行結果ウィンドウの大きさを指定するには(3.X用)」記事を参照してください。
では、実行結果ウィンドウをフルスクリーン(全画面)表示にするには、どうすれば良いのでしょうか?。
少しややこしいのですが、PROCESSINGのバージョンにより、方法が異なります。
PROCESSING2.Xでの方法は「フルスクリーンにするには(2.X用)」記事を参照してください。
●PROCESSING 3.Xの場合
A)size() 命令を利用する
B)fullScreen() 命令を利用する
A)size() 命令を利用する
一番最初に思いつく方法(笑)ですね。size() 命令に、実行結果ウィンドウのサイズを与える際、画面サイズを与えるようにします。
画面サイズは、displayWidth、displayHeight のシステム変数で取得可能です。
B)fullScreen() 命令を利用する
PROCESSING 3.X では、標準でフルスクリーンか通常画面かを選択できる fullScreen() 命令が追加されました。
【構文】
ここでは、PROCESSING 3.X で追加された fullScreen() 命令と、PROCESSING3.Xで利用できるようになったPSurfaceクラスから、関係する命令を紹介します。
●fullScreen() 命令の構文
void fullScreen();
void fullScreen( int display );
void fullScreen( String renderer );
void fullScreen( String renderer, int display );
●fullScreen() 命令のパラメータ
display :
実行結果ウィンドウを表示する画面番号を指定します。1ならメインDISPLAY、2以降ならセカンドDISPLAYになります。
renderer :
描画モードを指定します。P2D、P3D、FX2D、JAVA2D の何れかを指定します。
●PSurfaceクラス
void setAlwaysOnTop( boolean always );
実行結果ウィンドウを常に最前面化するか否かを制御します。always に true を指定すると常に最前面になります。false を指定すると、通常状態(他の画面が前に出ることがある)になります。
void setLocation( int x, int y );
実行結果ウィンドウの左上座標を指定します。
【注意】
《全般的な注意》
PROCESSING3.XではPAppletクラスの基底クラスがjava.awt.Appletではなくなりました。またsize() 命令は setup()関数内からしか呼び出せなくなりました。
《A)size() 命令を利用する場合》
size() 命令は setup()関数の中で1度だけ使うことが許されています。setup() 関数の中で複数回使用したり、setup()関数以外で利用すると「size() cannot be used here」エラーが発生します。
size()命令に実行結果ウィンドウのサイズを渡せば、フルスクリーン化可能です。ただしこの方法には、以下の問題点があります。
問題点1)実行結果ウィンドウの左上座標が、画面の左上になるとは限らない
問題点2)タイトルバーが表示される
問題点1に対処するには、PAppletが継承しているPSurfaceオブジェクトに対して、適切なメソッドを呼び出す必要があります。
問題点2に対処するには、size() 命令ではなく(B)の方法を利用します。
なおこの方法は、PROCESSING 3.X 専用となります。PROCESSING 2.X では利用できません。
《B)fullScreen() 命令を利用する場合》
fullScreen() 命令を利用すると、必ずタイトルバーなしのフルスクリーン画面になります。描画領域も自動的に全画面になります。
fullScreen() 命令は必ず setup() 関数の中で利用する必要があります。setup()関数以外で利用した場合、実行時に 「java.lang.IllegalStateException: fullScreen() cannot be used here」例外が発生します。
またfullScreen() 命令は size() 命令と同時に利用できません。同時に定義すると「size() and fullScreen() cannot be used in the same sketch」エラーが発生します。
【関連記事】
サンプルプログラム
size()命令を利用する例(3.X用):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
void setup(){ //フルスクリーンを指定 size( displayWidth, displayHeight ); //実行結果Windowの左上座標を画面左上にし //最前面化します。 surface.setLocation(0,0); surface.setAlwaysOnTop(true); } void draw(){ //Qキーが押されたら終了 if( keyPressed == true ){ if( key == 'Q'|| key == 'q' ){ exit(); } } } |
上記例ではsize()命令でフルスクリーンにした後で、実行結果ウィンドウの左上座標を画面左上に合わせつつ、実行結果ウィンドウを最前面化しています。
fullScreen() 命令を利用する例(3.X用):
1 2 3 4 5 6 7 8 |
//以下は PROCESSING 3.X の例です。 //PROCESSING 2.X では利用できません。 void setup(){ fullScreen(); } void draw(){ } |
すごくシンプルですね。タイトルバーなしのフルスクリーン画面を実現するなら、文句なしに一番簡単です。
本ページで利用しているアイコン画像は、下記サイト様より拝借しております。各画像の著作権は、それぞれのサイト様および作者にあります。