我想从Vector里边把几个点读出来,可是老是读出最近捕获的那个点,怎么样才能将里边存的所有点读来呢?
我写的读点代码是:for (int k=0;k<point1.size();k++)
                  {
             M v=(M)point1.get(k); 
             g.fillRoundRect(v.x,v.y,6,6,10,10);
                  }//M是一个点的class
存的代码是:
         p.x=getX();
         p.y=getY();
         point1.add(p);               
         repaint();
//point1为Vector的一个引用;p是M的对象;
谢谢各位高手啊!
越具体越好!~~~~~ME是新手哦!谢谢各位了!

解决方案 »

  1.   

    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    import javax.swing.*;
    import javax.swing.border.*;public class PointPaninter extends JPanel {
        Vector<Point> points = new Vector<Point>();    public PointPaninter() {
            setPreferredSize(
                new Dimension(400, 300));        addMouseListener(
                new MouseAdapter(){
                    public void mouseReleased(MouseEvent e) {
                        points.add(e.getPoint());
                        repaint();
                    }
            });
        }
        public void paint(Graphics g) {
            for (int k=0; k<points.size(); k++) {
                Point p = points.get(k);
                g.fillRoundRect(p.x, p.y, 6, 6, 10, 10);
            }
        }    public static void main(String[] args) {
            JFrame frame = new JFrame();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            Container container = frame.getContentPane();        container.add(new PointPaninter());        frame.pack();
            frame.setVisible(true);
        }
    }
      

  2.   

    晕 一个小问题 发这么多帖子每次存的时候应该新建一个对象M p = new M();
     p.x=getX();
     p.y=getY();
     point1.add(p);不然里面所有点的都是最新的
      

  3.   

    interpb(曾曾胡,深怕情多累美人!!!) :
      每次存的时候应该新建一个对象,不然里面所有点的都是最新的有道理,可能就是问题所在。
      

  4.   

    同意interpb(曾曾胡,深怕情多累美人!!!) 的意见,你不重新new一个点对象的话每次向vector中压的是否是同一个对象,只是属性值不同罢了。