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);
}
}
}