フルスクリーンにするには(3.X用)

◆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用):

上記例ではsize()命令でフルスクリーンにした後で、実行結果ウィンドウの左上座標を画面左上に合わせつつ、実行結果ウィンドウを最前面化しています。

<出力サンプル>
フルスクリーン4

 

fullScreen() 命令を利用する例(3.X用):

すごくシンプルですね。タイトルバーなしのフルスクリーン画面を実現するなら、文句なしに一番簡単です。

<出力サンプル>
フルスクリーン3

 


PROCESSING逆引きリファレンス一覧 へ戻る

本ページで利用しているアイコン画像は、下記サイト様より拝借しております。各画像の著作権は、それぞれのサイト様および作者にあります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)