Processing: 2番目の画面でクラスを使うときの注意
Processingは通常画面が一つしか作成されませんが,PAppletクラスを継承するクラスを作れば画面を複数作成することができます.

問題
新しくTestクラスを作りました.これは画面の背景を黒くするクラスです.
このクラスをSecondWindowのdraw()に書きましたが,背景が黒くなりません.

解決方法
これは以下のようにSecondWindow内にPApplet型の変数を用意して,applet.background(0)とすれば2番目の画面の背景色を変更することができました.

今回のコードは,すべてこちらにあります. 2番目の画面内でクラスを使うときの注意 · GitHub
解説
PAppletクラスは画面を作成し,setup()やdraw(),background()を管理しているクラスです.
Processingでは起動するとPAppletクラスが呼ばれて画面を作成し,その中身はsize()やbackground()などで変更されます.
SecondWindowクラスはそれを継承して,新しい画面を作成し元のPAppletクラスと同じ機能(setup()やbackground()など)を備えています.
background()やellipse()などの命令を自分の作ったクラス(今回はTestクラス)で呼ぶと,それは1番目のPAppletの命令を呼んでしまうので,2番目のPApplet(SecondWindow)の中身には何も変化が起きません.
これは,クラスの内で呼ばれるbackground()などの命令が,どのPAppletの命令なのかを指定することで解決することができるのです.
ちなみに
クラス内でmouseXやmouseYとしても,1番目の画面のマウス座標を取得してしまうので,これもapplet.mouseXのように指定する必要があります.
class Test { PApplet applet; Test(PApplet _applet) { applet = _applet; } void display() { applet.background(0); applet.fill(255); applet.ellipse(applet.mouseX, applet.mouseY, 20, 20); } }