>>536
>ボタンの切り替えでそれぞれの図形を描く事には成功したのですが、
>ボタンを切り替えた時に、今まで描いた絵が消えてしまいます。

ずいぶん進捗しているようで、何より。で、ここからが難しいんだけど、(嘘)
ボタンを押すと、フレーム全体が再描画される。そのとき、Canvasもrepaint
されるから、何も描かないpaintで、それまでに描いた絵が消される。

ここで理解しておきたいのは、GUIの描画は、マウスクリックで三角や丸を描く
時ばかりでなく、ボタンを押したり、ウインドウのサイズを変えたり、他のウイ
ンドウに隠されていたのが出てきたり、要するにきちんと表示するためには再度
描かなければいけないとき、自動的に行われる。そのときに使われるのが、paint
メソッドというわけ。
だから、そのような場合にも、それまでに描いた絵がきちんと再描画されるため
には、paintメソッドで描くようにしないといけない。
では、今、zukei.drawで描いているのをやめないといけないのか、というと、そう
ではなく、zukei.drawで描くGraphicsを別のものにして、paintでは、そのGraphics
の元のImageを、drawImageするようにすればいい。

この、別のGraphicsを作るには、ImageまたはBufferedImageをつくり、それから
取得する。で、zukeiのdrawには、このGraphicsを渡し、そこに描かせる。
このままでは、Canvasに描かれないから、Canvasのpaintをオーバーライドして、
絵の描かれたImageまたはBufferedImageを描くようにする。
そのためには、Canvasを継承するMyCanvas(適当な名前をつけてね)を作る。MyCanvas
の中で、paintメソッドをオーバーライドするわけね。

以上のようにすれば、マウスで描いた三角や丸は、MyCanvasのGraphicsではなく、
独自に作ったImageの上にかかれているから、ボタンを押したときの再描画でも、
消えることなく描かれる。
なお、zukei.drawした時に、そのままではMyCanvasに表示されない。次に再描画
されるタイミング(paintが呼ばれるとき)でないとだめ。ということは、drawする
度に、MyCanvasのrepaintを呼ぶ必要がある。paintは直接呼んではダメだからね。

いじょ。いろいろ調べて、頑張ってみて。