java有现成的api,何必去重新写一个呢?

解决方案 »

  1.   

    int id;
    public void paint()
    {
     if(id==0)
     { //*****;
        super.paint();
     }
     else
      if(id==1)
     {
       //*****
       super.paint();
      }
    }
    可否?
    也相当于是两个函数了
      

  2.   

    可能是我没说清楚,我是想用api函数的
     如果单独画直线时,这样
    public void paint(graphics g){
    .....
    g.drawLine(x1,y1,x2.y2);
    }
    单独画多边形,这样
    public void paint(graphics g){
    ......
    g.drawPolygon(xpoint[],ypoint[],npoint);
    }
    上面的大家都知道,问题是我在一起用时,
    repaint()时怎么写,如果用repaint()也不知道它会调用哪个啊,
    或者上面两个函数某一个该怎么改一下?
    是否只能设计两个不同参数的类?
      

  3.   

    public interface Operation {
        public void paint();
    }public class OperationLine implements Operation {
        public void paint(graphics g){
           g.drawLine(x1,y1,x2.y2);
        }
    }public class OperationPolygon implements Operation {
        public void paint(graphics g){
           g.drawPolygon(xpoint[],ypoint[],npoint); 
    }
      

  4.   

    import java.awt.Color;
    import java.awt.FlowLayout;
    import java.awt.Graphics;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;/*
     * Created on 2005-4-11
     *//**
     * @author yanbin.qiu
     */
    public class TestGraphics extends JFrame
    {
        public static void main(String[] args)
        {
            final JPanel panel= new JPanel();
            panel.setLayout(new FlowLayout());
            JButton b1 = new JButton("画圆");
            JButton b2 = new JButton("画框");
            panel.add(b1);
            panel.add(b2);
            
            b1.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    Graphics g = panel.getGraphics();
                    g.setColor(Color.blue);
                    g.clearRect(120,40,500,500);
                    g.drawOval(120,40,400,400);
                }
            });
            
            b2.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    Graphics g = panel.getGraphics();
                    g.setColor(Color.red);
                    g.clearRect(120,40,500,500);
                    g.draw3DRect(120,40,400,400,true);
                }
            });
            
            JFrame test= new TestGraphics();
            test.setSize(640,480);
            test.setContentPane(panel);
            test.setVisible(true);
            test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
    }