package cn.test.circle; import java.awt.Color; import java.awt.Graphics; import java.util.ArrayList; import java.util.List; import javax.swing.JFrame; public class MyFrame extends JFrame{ private List<MyCircle> list = new ArrayList<MyCircle>(); private List<MyRectangle> recList = new ArrayList<MyRectangle>(); /** * 添加到圆的集合 * @param c */ public void addMyCircleList(MyCircle c){ this.list.add(c); } /** * 添加矩形到集合 * @param r */ public void addRecList(MyRectangle r){ this.recList.add(r); } @Override public void paint(Graphics g) { super.paint(g); Color color = g.getColor(); for(MyCircle m:list){ m.drawMe(g); } g.setColor(color); for(MyRectangle m:recList){ m.drawMe(g); } } public static void main(String[] args) { new MyFrame(); } public MyFrame(){ this.setSize(400, 400); this.setLocation(300, 80); this.setDefaultCloseOperation(3); //初始化添加圆 MyCircle c1 = new MyCircle(10, 40, 20, 20); MyCircle c2 = new MyCircle(10, 40, 20, 20); this.addMyCircleList(c1); this.addMyCircleList(c2); //初始化添加矩形 MyRectangle r1 = new MyRectangle(10, 30, 40, 50); MyRectangle r2 = new MyRectangle(40, 20, 60, 50); this.addRecList(r1); this.addRecList(r2); this.setVisible(true); new RefreshThread().start(); } /** * 不断刷新屏幕的线程 * @author Administrator * */ private class RefreshThread extends Thread{ @Override public void run() { super.run(); while(true){ repaint(); try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } }