这是我的代码,帮我看一下改怎样改
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;public class PushCounterPanel extends JPanel
{
  private JButton push;
 
   public PushCounterPanel ()
   {
    push = new JButton ("Push Me!");
  
      push.addActionListener (new ButtonListener()); add (push);
 setPreferredSize (new Dimension(300, 40));
      setBackground (Color.cyan);
   }   private class ButtonListener implements ActionListener
   {
     
   public void actionPerformed (ActionEvent event)
      {
      public void paintComponent (Graphics page)
   {
      super.paintComponent (page);
 page.setColor (Color.black);
      page.drawOval (60, 60, 15, 7);
      
   }
      }
   }}

解决方案 »

  1.   

    首先你有一个比较大的错误就是在函数里面有定义另外一个函数;
    在函数actionPerformed里不可用再定义函数paintComponent;
    还有就是我觉得这里不可以调用paintComponent这个函数;因为这个函数只用你画了这个画板就会直接调用这个函数
    那你点击按钮的时候就不可以画图了;
    所以我把你的程序改了改:
    一下代码没用重写paintComponent这个函数;
    而是直接在点击事件的函数画图
     Graphics page = getGraphics();//获得一个Graphics实例,并在其上画图
     page.setColor(Color.black);
     page.drawOval(60, 60, 15, 15);import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;public class PushCounterPanel extends JPanel {    private JButton push;    public PushCounterPanel() {
            push = new JButton("Push Me!");
            push.addActionListener(new ButtonListener());
            add(push);
            setPreferredSize(new Dimension(300, 40));
            setBackground(Color.cyan);
        }    private class ButtonListener implements ActionListener {        public void actionPerformed(ActionEvent event) {
                Graphics page = getGraphics();
                page.setColor(Color.black);
                page.drawOval(60, 60, 15, 15);
            }
        }    public static void main(String[] args) {
            PushCounterPanel sai = new PushCounterPanel();
            JFrame f = new JFrame();
            f.getContentPane().add(sai);
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.setSize(300, 200);
            f.setVisible(true);
        }