java 点一下按钮就能画一个图形,怎么弄呢

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;
public class huatu {
static public void main(String[] args) {
new test();
}
}
class test extends JFrame {
JButton b1=new JButton("rect");
int f1=0,f2=0;
test() {
this.setBounds(100,100,500,500);
setLayout(new FlowLayout());
add(b1);
b1.addActionListener(new addActionListener());
this.setVisible(true);
}
class addActionListener implements ActionListener {

    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO 自动生成的方法存根
        if(b1==e.getSource()) f1=1;
    }
}

}
class draw extends Canvas {
test t=null;
public draw (test t) {
this.t=t;
}
public void paint(Graphics g) {
if(t.f1==1)
g.drawRect(100, 100, 200, 200);
}

}


http://www.iteye.com/problems/72153

 private void addCanvas(){//这是不断增加canvas的方式,如果在你的draw类中定义drawrect方法,也可以在同一个canvas上画矩形
        draw d = new draw(this);
        d.setBounds(100, 100, 400, 400);
        this.getContentPane().add(d);
        this.repaint();
        d.repaint();
    }
    class addActionListener implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
            // TODO 自动生成的方法存根
            if(b1==e.getSource()) {
                f1=1;
                addCanvas();
            }
        }
    }