设置一个boolean flag = false;
当点按钮之后flag = true;paintCxxx中判断if(flag == false)return;

解决方案 »

  1.   

    这样改一下就可以了!
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;public class qc extends JFrame //implements ActionListener
    {
    public static void main(String[] args)
    {
    qc qq = new qc();
    }

    JPanel jp = new JPanel();
    GridLayout bl = new GridLayout(2,2);

    public qc()
    {
    this.getContentPane().add(jp,new BorderLayout().CENTER);

    jp.setLayout(bl);
    for(int i = 0;i<4;i++)
    {
    jp.add(new draw());
    }
    this.setSize(450,450);
    this.setVisible(true);
    }

    class draw extends JPanel 
    {
    int k = 0;
    public draw()
    {
    this.addMouseListener(new MouseAdapter(){
    public void mouseClicked(MouseEvent e){
    repaint();
    }
    });
    }

    protected void paintComponent(Graphics g)
    {
    super.paintComponent(g);

    g.drawRect(0,0,200,200);
    //*****修改处****//
                                if(k==0)
    {
    k=1;
    }
                               //***************//
    else if(k==1)
    {
    g.setColor(Color.blue);
    g.drawLine(0,0,200,200);
    g.drawLine(0,200,200,0);
    k=2;
    }
    else if(k==2)
    {
    g.setColor(Color.red);
    g.drawOval(0,0,200,200);
    k=0;
    }
    }
    }
    }