スイッチ回路のシミュレーション
public void paint(Graphics g){
Color cRed=new Color(255,0,0);
Color cBlack=new Color(0,0,0);
//g.setColor(cBlack);
g.drawOval(30,60,15,15);//left sw
g.drawOval(260,60,15,15);//right sw
g.drawRect(100,120,40,20);//batt
g.drawOval(170,120,20,20);//lamp
g.drawLine(140,130,170,130);//botom
g.drawLine(20,130,100,130);
g.drawLine(190,130,295,130);
g.drawLine(295,130,295,67);//down
g.drawLine(20,130,20,67);//up
g.drawLine(20,67,30,67);
g.drawLine(295,67,275,67);
g.drawLine(80,62,204,62);//top
g.drawLine(80,85,204,85);
boolean swa=checkbox1.getState();
boolean swb=checkbox3.getState();
boolean lamp=swa&&swb || (!swa)&&(!swb);
//System.out.println("swa:"+swa+" swb:"+swb);
if(lamp) g.setColor(cRed);
else g.setColor(cBlack);
g.fillOval(170,120,20,20);
}
あとは、各チェックボックスに対するイベント処理を付加します。処理はすべてpaint()で行いますから、再描画をするrepaint()を呼び出せば良いのです。ただし、各チェックボックスをダブルクリックすると、4個のメソッド(関数)を作成してしまいます。