Graphics类

package frank;
import java.lang.*;
import java.util.Random;
import java.awt.*;
import java.awt.event.*;

/**
 * Graphics类
 * */
public class App
{
	private final String RECT_SHAPE = "rect";
	private final String OVAL_SHAPE = "oval";
	private Frame f = new Frame("测试窗体");
	private Button rect = new Button("绘制矩形");
	private Button oval = new Button("绘制圆形");
	private MyCanvas drawArea = new MyCanvas();
	private String shape = "";
	public static void main(String[] args)
	{
		new App().init();
	}
	public void init()
	{
		Panel p = new Panel();
		rect.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				shape = RECT_SHAPE;
				drawArea.repaint();	
			}
		});
		oval.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				shape = OVAL_SHAPE;
				drawArea.repaint();
			}
		});
		p.add(rect);
		p.add(oval);
		drawArea.setPreferredSize(new Dimension(250,180));
		f.add(drawArea);
		f.add(p,BorderLayout.SOUTH);
		f.pack();
		f.addWindowListener(new MyListener());
		f.setVisible(true);
	}
	class MyCanvas extends Canvas
	{
		public void paint(Graphics g)
		{
			Random rand = new Random();
			if(shape.equals(RECT_SHAPE))
			{
				g.setColor(new Color(220,100,80));
				g.drawRect(rand.nextInt(200),rand.nextInt(120),40,60);
			}
			if(shape.equals(OVAL_SHAPE))
			{
				g.setColor(new Color(80,100,200));
				g.fillOval(rand.nextInt(200),rand.nextInt(120),50,40);
			}
		}
	}
	class MyListener extends WindowAdapter
	{
		public void windowClosing(WindowEvent e)
		{
			System.out.println("用户关闭窗体!\n");
			System.exit(0);
		}
	}
}

  

posted on 2013-10-28 10:19  wp456  阅读(294)  评论(0)    收藏  举报

导航